Template:Location map many/doc

Template:Location map many creates a location map as a composite image of an existing map, with multiple markers and optional labels superimposed onto it. This template functions in the style of Template:Location map, but allows multiple markers and labels (rather than just one marker).

Usage
The first unnamed parameter (shown as below) specifies a map definition.

Parameters
Note: For brevity, parameters "pos" & "bg" are aliases (for "position" & "background"), with pos2, bg2, pos3, bg3, etc.

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

Advisory messages
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 multiple markers/labels, the latitude and longitude are checked to lie within the actual map limits specified in Template:Location_map_ . 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. 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.

Map with label "Sanctuary" and "Red Rocket" (degrees)
Recommended syntax

Alternative syntax

Map with 3 labels (decimal)
Recommended syntax

Alternative syntax

Western Hemisphere


Implementation notes
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
 * 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;"&gt;.
 * Within that division the marker/label sub-divisions are coded as:
 * 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.
 * when position:bottom, adds top:-0.15em; left: -3em; text-align: center;" to div-tag.