Templat:Peta lokasi banyak

Daripada Wikipedia, ensiklopedia bebas.
Jump to navigation Jump to search
Pendokumenan templat[lihat] [sunting] [sejarah] [nyahcache]

Creates a location map as a composite image of an existing map, with multiple (up to 9) markers and optional labels superimposed onto it. This template functions in the style of Template:Location_map, but allows 9 markers and labels (rather than just one marker). Note: For brevity, parameters "pos" & "bg" are aliases (for "position" & "background"), with pos2, bg2, pos3, bg3, etc.

Each mark, mark2, mark3 (etc.) can be another image-symbol, such as Diamond_sheer_red_20.gif (marksize=20) to show a red diamond on the image: Diamond sheer red 20.png or use: Cercle_rouge_100%.svg to show a red circle Cercle rouge 100%.svg or a larger black diamond: Diamond_sheer_black_37.gif as sized with a larger marksize=37 or similar number to resize the diamond somewhat: Diamond sheer black 37.png

See Wikimedia pointer symbols: commons:Category:Map pointers.

Parameter locname refers to {Template:Location map locname} containing the image name and coordinates of a particular map.

When a marker's mark#size=0, then that marker is skipped and only the related label is displayed, without the marker.

Advisory messages[sunting sumber]

The degrees of latitude/longitude are validated, to show error messages, but location minutes can be set very large to place markers outside the map (with no warnings). Due to the numerous details of specifying 9 markers/labels, the latitude and longitude are checked to lie within the actual map limits specified in Template:Location_map_<parameter1>. Each marker/label is checked and can list a warning message (under the map), such as:

Latitude#4 (45.68) < map min(53.74).

Processing continues, with that marker actually placed off-map, and all latitude/longitude parameters are checked, for a total of 18 possible advisory messages. Only degrees of latitude/longitude are checked, so a value of 63 minutes would be valid to indicate 1 extra degree + 3 minutes, and setting lon_min=200 could still place a marker off-map (right-side) with no warning message. Also, large markers or long labels can spill over the edges of a map, allowing markers to point inward from outside the map. In such cases, a map could be centered by itself on the page ("float=center") to avoid overlapping the edge markers onto any surrounding article text.

Available maps[sunting sumber]

Partial list of live templates named Template:Location_map_<locname> (without "Template:" prefix here, A-F):

For more, see: Special:Prefixindex/Template:Location_map_.

Creating new maps[sunting sumber]

  1. Find an appropriate blank map in equirectangular projection (otherwise, coordinates will drift off, typically further north)
  2. Create a template named "Template:Location_map_locname" (copy the content of any other map template into it and enter appropriate values).
  3. Set default parameter values (using those parameter names), such as setting "mark" with image-file name and "marksize" for pixels wide/tall, or set default label font size ("label_size = 78" percent).
  4. Parameter names not used by "Template:Location_map" will be ignored by it, and only used for multiple-markers (such as defaulting "label2_size = 78" percent, or "mark2size=7" pixels).

Examples[sunting sumber]

Map with label "Pag" and "Anytown" (degrees)[sunting sumber]

Pag (Croatia)
{{Location map many
 |Croatia
 |label=Pag |marksize=8 
    |pos=right    | bg=yellow
    |lat_deg=44   | lat_min=26
    |lon_deg=15   | lon_min=3
 |label2=Anytown_Anywhere
    |mark2size=45 
    |mark2=Rouge-Admin JollyRoger.svg
    |pos2=top     | bg2=white
    |lat2_deg=46  | lat2_min=30
    |lon2_deg=17  | lon2_min=30
 |width=280
 |float=right
}}

Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/Croatia" does not exist.

Map with 3 labels (decimal)[sunting sumber]

Pag (Croatia)
{{Location map many | Croatia
 | label=Pag | position=right
      | lat=44.44  | long=15.05
      | marksize=8 
 | label2=Anytown
      | pos2=bottom | bg2=yellow
      | lat2=45.86  | long2=17.50
      | marksize=8
      | background2=yellow
 | label3=Anytown2
      | pos3=top   | bg3=lightgreen
      | lat3=46.23 | long3=18.43
 | width=260 | float=right
}}
Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/Croatia" does not exist.

Example map with red triangle[sunting sumber]

Hispaniola (& Cuba)
{{ Location map many | 100x100
 | label = Hispaniola
   | lat=38.2 | long=69.3
   | background = #CCDDFF
   | position=left | marksize=1
 | label2 = 
   | lat2=52.2 | long2=73.9 | mark2size=42
   | mark2=Diamond_sheer_red_37.png
 | label3 = Cuba
   | lat3=59.2 | long3=68.0
   | pos3=left | mark3size=1
 | float=right | width=250
 | AlternativeMap = LocationJamaica.svg
 | caption = Site of '''Hispaniola'''
 }}

Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/100x100" does not exist.

Map with some labels outside map[sunting sumber]

Pag (Croatia)
{{Location map many | Croatia
 | label=Pag | position=right
      | lat=44.44  | long=15.05
      | marksize=8 
 | label2=Anytown
      | pos2=bottom | bg2=yellow
      | lat2=47.40  | long2=12.80
      | marksize=8 
      | background2=yellow
 | label3=Anytown2
      | pos3=top   | bg3=lightgreen
      | lat3=41.98 | long3=18.43
 | label4=North Croatia | pos4=left
      | mark4size=0 | bg4=lightgreen
      | lat4=46.22  | long4=17.7
 | width=260 | float=right
}}
Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/Croatia" does not exist.

Map with 9 markers (decimal)[sunting sumber]

Pag (Croatia)
{{Location map many | Croatia
 | label=Pag | position=right
      | lat=44.44 | long=15.05
 | label2=Anytown
      | pos2=bottom| label2_size=110
      | lat2=45.86 | long2=17.50
      | background2=yellow
 | label3=Anytown2
      | pos3=top  | label3_size=290
      | lat3=46.23 | long3=18.43
      | background3=green
 | mark4=Diamond_sheer_black_20.png
      | mark4size=19 
      | label4=44.0 (latitude)
      | lat4=44.00 | long4=13.5
 | mark5=Diamond_sheer_black_20.png
      | mark5size=20 
      | label5=44.5
      | lat5=44.50 | long5=13.5
 | mark6=Diamond_sheer_black_20.png
      | mark6size=20 
      | label6=45.0
      | lat6=45.00 | long6=13.5
 | mark7=Diamond_sheer_black_20.png
      | mark7size=20 
      | label7=45.5
      | lat7=45.50 | long7=13.5
 | mark8=Diamond_sheer_black_20.png
      | mark8size=20 
      | label8=46.0
      | lat8=46.00 | long8=13.5
 | label9=''CROATIA'' |label9_size=165
      | mark9size=<!--label only-->1
      | lat9=42.60 | long9=14.4
 | width=260 | float=right
}}
Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/Croatia" does not exist.

Map with a custom label and text background[sunting sumber]

Imotski
{{Location map many | Croatia
 |label=Imotski
 |lat=43.44
 |long=17.21
 |position=right
 |width=280
 |float=right
 |background=#FFFFDD
 |caption=Imotski in Croatia
 }}
Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/Croatia" does not exist.

Map with enlarged marker and label[sunting sumber]

Pag (Croatia)
{{Location map many | Croatia
 |label=Pag
 |label_size=200
 |lat=44.44
 |long=15.05
 |marksize=14 | position=right
 |width=260
 |float=right
 |background=#FFFFDD
 |caption=Pag Island in Croatia
 }}
Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/Croatia" does not exist.

Map with no caption[sunting sumber]

Brčko (Bosnia and Herzegovina)
{{Location map many
 |Bosnia
 |label=Brčko
 |position=left
 |width=150
 |lat=44.87
 |long=18.81
 |float=right
 |caption=
 }}
Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/Bosnia" does not exist.

Western Hemisphere[sunting sumber]

Lockerbie (Scotland)
{{Location map many | United Kingdom
 |label=Lockerbie
 | lat_dir=N
 | lat_deg=55 | lat_min=07 | lat_sec=16
 | lon_deg= -3 | lon_min=-21 | lon_sec=-19
 |position=right
 |width=180
 |float=right
 |caption=Lockerbie in Scotland
}}
Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/United Kingdom" does not exist.

Country that crosses 180° meridian[sunting sumber]

Uelen (Russia)
{{Location map many
 |Russia
 |label=Uelen
 |lat_deg=66|lat_min=09|lat_dir=N
 |lon_deg=169|lon_min=48|lon_dir=W
 |position=left
 |width=500
 |float=right
 |background=#FFFFDD
 }}

Ralat Lua pada baris 75 di Modul:Location_map/multi: Unable to find the specified location map definition: "Module:Location map/data/Russia" does not exist.

Implementation notes[sunting sumber]

The map with markers/labels is implemented as nested HTML divisions. The map-image is in an HTML division, containing each point as a percent-locator division containing a marker-image sub-division plus a label sub-division. Each point is calculated (for a percent-locator division) with X or Y coordinate "XX.X%" or "YY.Y%" as follows:

  • The div-tag is "<div style="position: absolute; z-index: 2; top: XX.X%; left: YY.Y%; ...>"
  • For placing latitude, the calculation is:
  • XX.X% = 100 * (top - (lat_deg + latmin/60 +latsec/3600) ) / (top - bottom)
  • If lat_deg is empty, the combined decimal latitude is used from "lat".
  • If lat_dir is "S" (south), the latitude is multiplied by -1.
  • (Note latitude is positioned in reverse, from top of map downward.)
  • For placing longitude, the calculation is:
  • YY.Y% = 100 * ( (lon_deg + lonmin/60 +lonsec/3600) - left ) / (right - left)
  • If lon_deg is empty, the combined decimal longitude is used as "long".
  • If lon_dir is "W" (west), the longitude is multiplied by -1.
  • The div-tag is ended as "height: 0; width: 0; margin: 0; padding: 0;">".
  • Within that division the marker/label sub-divisions are coded as:
  • <div style="position: relative text-align: center; ...">.
  • For label position, the options are shifted as:
  • when position=left, adds "left: -6.5em; text-align: right;"
  • when position=right, adds "left: 0.5em; text-align: left;"
  • when position=top, adds "top:-2.65em; left:-3em; text-align: center;"
  • when position=bottom, adds "top:-0.15em; left: -3em; text-align: center;" to div-tag.

See also[sunting sumber]