Creates a Harta de localizare as a composite image of an existing map in equirectangular projection, with multiple (up to 9) markers and optional labels superimposed onto it. This format functions in the style of format:Harta_de_localizare, but allows 9 markers and labels (rather than just one marker). Note: For brevity, parameters "pos" & "bg" are aliases (for "position" & "background").

Also see: For an unlimited list of markers/labels, see: format:Harta_de_localizare+,
which specifies points as a coded format list of markers/labels.

UsageModificare

{{</nowiki>Harta de localizare multiplă
|''locname''   (selected from formats named "Harta_de_localizare_<locname>")
------------------------------------------- 1st label & marker
|label      = 1st ''label text''
|label_size = 1st label font size, percent (such as "85")
|position   = pos = left ''or'' right ''or'' top ''or'' bottom – position of
               1st label relative to 1st mark (default: ''right'')
|background = bg = background color for 1st label, defaults transparent
|lon_dir=W    1st longitude direction: W=west, E=east (default)
|lat_dir=S    1st latitude direction: S=south, N=north (default)
|lat_deg    = 1st ''latitude'' degrees (negative to indicate south)
|lat_min    = 1st ''latitude'' minutes (negative to indicate south)
|lat_sec    = 1st ''latitude'' seconds (or use combined ''lat'')
|lon_deg    = 1st ''longitude'' degrees (negative to indicate west)
|lon_min    = 1st ''longitude'' minutes (negative to indicate west)
|lon_sec    = 1st ''longitude'' seconds (or use combined ''long'')
|lat        = 1st ''latitude'' (as decimal; negative for south latitude)
|long       = 1st ''longitude'' (as decimal; negative for west longitude)
|mark       = 1st ''marker image file name'', a red dot by default
|marksize   = 1st marker ''size'' in pixels (0=skip marker, default=8)
|markhigh   = 1st marker ''height'', default=8
------------------------------------------- 2nd label & marker
|label2      = 2nd ''label text''
|label2_size = 2nd label font size, percent (such as "85")
|position2   = pos2 = left ''or'' right ''or'' top ''or'' bottom – position of
                2nd label relative to 2nd mark (default: ''right'')
|background2 = bg2 = background color for 2nd label, defaults transparent
|lat2_deg    = 2nd ''latitude'' degrees (negative to indicate south)
|lat2_min    = 2nd ''latitude'' minutes (negative to indicate south)
|lat2_sec    = 2nd ''latitude'' seconds (or use combined ''lat2'')
|lon2_deg    = 2nd ''longitude'' degrees (negative to indicate west)
|lon2_min    = 2nd ''longitude'' minutes (negative to indicate west)
|lon2_sec    = 2nd ''longitude'' seconds (or use combined ''long2'')
|lat2        = 2nd ''latitude'' (as decimal; negative for south latitude)
|long2       = 2nd ''longitude'' (as decimal; negative for west longitude)
|mark2       = 2nd ''marker image file name'', a red dot by default
|mark2size   = 2nd marker ''size'' in pixels (0=skip, default=8)
|mark2high   = 2nd marker ''height'', default=8
------------------------------------------- 3rd label & marker
|label3      = 3rd ''label text''
|label3_size = 3rd label font size, percent (such as "120")
|pos3, bg3   = 3rd label position & background color
    (... similar latitude/longitude parameters named "~3" ...)
|mark3       = 3rd ''marker image file name'', a red dot by default
|mark3size   = 3rd marker ''size'' in pixels (0=skip, default=8)
|mark3high   = 3rd marker ''height'', default=8
    (...repeat until label9/mark9...)
-------------------------------------------
|border     = ''border color'' or ''none''
|caption    = ''map caption''; for no caption enter "caption=";
               if omitted, then the caption will be auto-generated
               as: ''"<marker #1 label> (<Harta de localizare name>)"''
|float      = left ''or'' right ''or'' center ''or'' none for map placement
|width      = ''map width'' for display size
|AlternativeMap = Alternative map file name (changes background map,
              border coordinates are determined based on the map name);
              this is only recommended for use in formats
<nowiki>}}

Parameter locname refers to {format:Harta de localizare 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 messagesModificare

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 Format:Harta_de_localizare_<parameter1>. Each marker/label is checked and can list a 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. 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 mapsModificare

List of live formats named Format:Harta_de_localizare_<locname> (without "format:" prefix here):

Creating new mapsModificare

  1. Find an appropriate blank map in equirectangular projection (otherwise, coordinates will drift off, typically further north)
  2. Create a format named "Format:Harta_de_localizare_locname" (copy the content of any other map format 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 "format:Harta_de_localizare" will be ignored by it, and only used for multiple-markers (such as defaulting "label2_size = 78" percent, or "mark2size=7" pixels).

ExamplesModificare

Map with label "Pag" and "Anytown" (degrees)Modificare

Pag (Croatia)
{{Harta de localizare multiplă
|Croația
|label=Pag |marksize=8 |markhigh=8
|<!--Rouge-Admin JollyRoger.svg-->
    |pos=right    | bg=yellow
    |lat_deg=44   | lat_min=26
    |lon_deg=15   | lon_min=3
|label2=Anytown_Anywhere
    |mark2size=45 | mark2high=30
    |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
}}
Pag (Croația)
Pag
Pag
Anytown_Anywhere
Anytown_Anywhere
Pag (Croația)

Map with 3 labels (decimal)Modificare

Pag (Croatia)
{{Harta de localizare multiplă | Croația
| label=Pag | position=right
      | lat=44.44  | long=15.05
      | marksize=8 | markhigh=8
| label2=Anytown
      | pos2=bottom | bg2=yellow
      | lat2=45.86  | long2=17.50
      | marksize=8 | markhigh=8
      | background2=yellow
| label3=Anytown2
      | pos3=top   | bg3=lightgreen
      | lat3=46.23 | long3=18.43
| width=260 | float=right
}}
Pag (Croația)
Pag
Pag
Anytown
Anytown
Anytown2
Anytown2
Pag (Croația)

Map with some labels outside mapModificare

Pag (Croatia)
{{Harta de localizare multiplă | Croația
| label=Pag | position=right
      | lat=44.44  | long=15.05
      | marksize=8 | markhigh=8
| label2=Anytown
      | pos2=bottom | bg2=yellow
      | lat2=47.40  | long2=12.80
      | marksize=8 | markhigh=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
}}
Pag (Croația)
Pag
Pag
Latitude#2 (47.40) > map max(46.8).

Longitude#2(12.80) < map min(13.1).

Anytown
Anytown
Latitude#3 (41.98) < map min(42.1).


Anytown2
Anytown2
North Croatia
Pag (Croația)

Map with 9 markers (decimal)Modificare

Pag (Croatia)
{{Harta de localizare multiplă | Croația
| 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 | mark4high=17
      | label4=44.0 (latitude)
      | lat4=44.00 | long4=13.5
| mark5=Diamond_sheer_black_20.png
      | mark5size=20 | mark5high=20
      | label5=44.5
      | lat5=44.50 | long5=13.5
| mark6=Diamond_sheer_black_20.png
      | mark6size=20 | mark6high=20
      | label6=45.0
      | lat6=45.00 | long6=13.5
| mark7=Diamond_sheer_black_20.png
      | mark7size=20 | mark7high=20
      | label7=45.5
      | lat7=45.50 | long7=13.5
| mark8=Diamond_sheer_black_20.png
      | mark8size=20 | mark8high=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
}}
Pag (Croația)
Pag
Pag
Anytown
Anytown
Anytown2
Anytown2
44.0 (latitude)
44.0 (latitude)
44.5
44.5
45.0
45.0
45.5
45.5
46.0
46.0
CROATIA
CROATIA
Pag (Croația)

Map with a custom label and text backgroundModificare

Imotski
{{Harta de localizare multiplă | Croația
|label=Imotski
|lat=43.44
|long=17.21
|position=right
|width=280
|float=right
|background=#FFFFDD
|caption=Imotski in Croatia
}}
Imotsky (Croația)
Imotsky
Imotsky
Imotski in Croatia

Map with enlarged marker and labelModificare

Pag (Croatia)
{{Harta de localizare multiplă | Croația
|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
}}
Pag (Croația)
Pag
Pag
Pag Island in Croatia

Map with no captionModificare

Brčko (Bosnia and Herzegovina)
{{Harta de localizare multiplă
|Bosnia
|label=Brčko
|position=left
|width=150
|lat=44.87
|long=18.81
|float=right
|caption=
}}
Brčko (Bosnia)
Brčko
Brčko

Western HemisphereModificare

Lockerbie (Scotland)
{{Harta de localizare multiplă | Marea Britanie
|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
}}
Lockerbie (Regatul Unit)
Lockerbie
Lockerbie
Lockerbie in Scotland

Country that crosses 180° meridianModificare

Uelen (Rusia)
{{Harta de localizare
|Rusia
|label=Uelen
|lat_deg=66|lat_min=09
|lon_deg=169|lon_min=48|lon_dir=W
|position=bottom
|width=500
|float=right
|background=#FFFFDD
}}
Uelen se află în Rusia
Uelen
Uelen
Uelen (Rusia)

Implementation notesModificare

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 alsoModificare