Template:Maplink/doc

< Template:Maplink

This template adds a link, or frame, which will display map data – either from:

  • data stored in GeoJSON format on Commons
  • line/polygon features in OpenStreetMap.
  • coordinates, either supplied or from Wikidata
  • raw GeoJSON, preferably transcluded from another page

Note:

Uses

This template is intended for linear or polygon features, including (but not limited to):

  • Roads
  • Rivers
  • Subway or train lines
  • Ship courses
  • Flight paths
  • Explorers journeys
  • Animal habitats
  • Countries and their subdvisions

and more... This template can also be used to display point features on a map, i.e. coordinates.

Usage

Basic usage

  • on Commons (e.g. Data:ecos.fws.gov/Endangered habitat 58938/Plethodon neomexicanus.map):
    {{maplink|from=}} (specify .map data page in from=, excluding Data prefix)
  • (e.g. {{Wikipedia:Map data/Main Roads Western Australia/Forrest Highway}}):
    {{maplink|raw=}} (specify raw GeoJSON, preferably transcluded from a subpage of Wikipedia:Map data)
  • from OSM:
    {{maplink|type=line|id=}} (Wikidata id only required if another article's Wikidata page is to be used)
  • from OSM:
    {{maplink|type=shape|id=}} (Wikidata id only required if another article's Wikidata page is to be used)
  • from OSM:
    {{maplink|type=shape-inverse|id=}} (Wikidata id only required if another article's Wikidata page is to be used)
  • (coordinates):
    ...from Wikidata:
    {{maplink|type=point|id=}} (Wikidata id only required if another article's Wikidata page is to be used)
    ...from specified coordinates:
    {{maplink|type=point|coord=}} (specify coordinates using {{Coord}} template)
  • (centred on a point's coordinates):
    ...from Wikidata:
    {{maplink|type=circle|radius=|id=}} (Wikidata id only required if another article's Wikidata page is to be used)
    ...from specified coordinates:
    {{maplink|type=circle|radius=|coord=}} (specify coordinates using {{Coord}} template)
  • To show in a frame, add the parameter |frame=yes.
  • Additional parameters are available to customise the displayed map.

Full parameter set – data page

{{maplink
|display=
|from=
|zoom=
|text=
|icon=
}}

Full parameter set – raw data

{{maplink
|display=
|raw= <!-- preferably {{Wikipedia:Map data/subpage}} -->
|zoom=
|text=
|icon=
}}

Full parameter set – geoline/geoshape

{{maplink
|display=
|type=
|id=
|title=
|description=
|stroke-color=
|stroke-width=
|zoom=
|text=
|icon=
}}

Full parameter set – point features/coordinates

{{maplink
|display=
|type=point
|id=
|title=
|description=
|coord=
|marker=
|zoom=
|text=
|icon=
}}


Full parameter set – circles

{{maplink
|display=
|type=circle
|radius=  <!-- in metres, alternative parameters available for other units --> 
|id=
|title=
|description=
|coord=
|marker=
|zoom=
|text=
|icon=
}}

Parameters

For overall display

display
How the template is displayed. Valid values are:
inline - Only displays the inline link (you can forego this, as it is the default)
title - Only displays the title link
inline,title - Displays the inline link as well as the title link
title,inline - Same as above
text
Text to display for the link (or caption if using mapframe); default is "Map"
icon
Set to "no" to turn off the icon that appears next to the link
zoom
Zoom level, from 1 to 19 (larger numbers zoom in further); default is automatically determined by the map
(Note that automatically determined zoom level does not work for mapframe maps except when previewing the page – see phab:T193455)

Mapframe parameters (only work with inline display)

frame
Set to "yes" to show a map frame instead of a link
plain
Set to "yes" to show just the map without the surrounding frame, and without a caption (text parameter will be ignored)
frame-align
Alignment with respect to the page: left, center, or right; default is right
frame-width
Width of the map frame, default is 300
frame-height
Height of the map frame, default is 200
frame-coordinates
(or frame-coord)
Optional - alternate coordinates for initial placement of map. Use {{Coord}} template to specify coordinates (e.g. |frame-coordinates={{Coord|12.34|S|56.78|W}}). If not set, coordinates will be retrieved from Wikidata.
frame-latitude
(or frame-lat)
(ignored if |frame-coordinates= or |frame-coord= is set)
Optional - alternate latitude coordinate for initial placement of map.
frame-longitude
(or frame-long)
(ignored if |frame-coordinates= or |frame-coord= is set)
Optional - alternate longitude coordinate for initial placement of map.
Note: If frame latitude and longitude are not set by parameters, then frame coordinates can be determined automatically, either:
  • Based on the line and shape objects (if any have been specified), or
  • From the point feature specified in |coord= (if set), or
  • Retrieved from Wikidata (if available – for either the item specified in |id= parameter, or for the page the template is placed on)

Raw GeoJSON

raw
Raw GeoJSON (preferably transcluded from a subpage of Wikipedia:Map data) as well as <maplink> functionality not available via the other parameters. See below for more information.

For each feature

Multiple features can be displayed on a single map. For each additional feature, add a sequential number to the end of the parameter name. For example, the second uses parameters like |type2=, |id2=, etc., the third feature |type3=, |id3=, etc., and so on.

type
Type of data. Valid values are:
line – a geoline feature from OSM (e.g. a road)
shape – a geoshape feature from OSM (e.g. a state or province)
shape-inverse – a geomask feature from OSM (the inverse of a geoshape - allows an unobstructed view of the map beneath)
data – a geoJSON data page on Commons (parameter is optional in this case)
point – a point feature (coordinates)
circle – a circle centred on a point's coordinates
id
(or ids)
Wikidata id (Q-number) of the point feature, Wikidata id that the OSM line/shape feature is tagged with. Separate multiple ids with a comma. Defaults to the current page's Wikidata id (if |from= not set).
from
The JSON (.map) file from Commons to display (excluding the Data: prefix)
title
Title of the feature (for features from OSM), displayed when the feature is clicked on; default is the page title
description
Description of the feature (for features from OSM), displayed when the feature is clicked on; optional
stroke-color
(or stroke-colour)
Color code for the color used to draw the feature (for features from OSM); default is #ff0000 (red)
stroke-width
Width for the lines used to draw the feature (for features from OSM); default is 6
stroke-opacity
Opacity for the lines used to draw the feature (for features from OSM) – a number between 0 (fully transparent) and 1 (fully opaque); default is 1
fill
Color code for the fill color of the feature (for shape or shape-inverse features from OSM); default is #000000 (black). Note that a semi-transparent version of the specified color will be used by default, allowing the map below to still be seen.
fill-opacity
Opacity for the fill color of the feature (for shape or shape-inverse features from OSM) – a number between 0 (fully transparent) and 1 (fully opaque); default is 0.5
coord
Coordinates to display for a point feature. Use {{Coord}} template to specify coordinates (e.g. |coord={{Coord|12.34|S|56.78|W}}). If not set, coordinates will be retrieved from Wikidata.
marker
Name of Maki marker image to display at the point feature. See mw:Maps/Icons for options. If not set, a plain marker will be shown without an image.
marker-color
(or marker-colour)
Color code (Hex triplet) specifying marker background color. Default is 5E74F3 ( )
radius
(or radius_m), or alternative parameters radius_km, or radius_mi, or radius_ft
Radius of the circle. In metres by default, or in kilometers or miles or feet if the alternative parameters are used.
edges
Number of edges used to construct the circle. Default is 32. Higher numbers will result in a smoother circle but use more Lua processing resources.

Examples and tips

Multiple features

Multiple features allow you to:

  • Use external data from both Wikimedia Commons and OpenStreetMap together
  • Apply different styles to different external data features from OpenStreetMap
  • Include multiple links to external data from Wikimedia Commons


{{Maplink|frame=yes
|type=shape|id=Q3495894|title=Shape|description=Description of shape
|type2=line|id2=Q1318331|title2=Line|description2=Description of line
|type3=point|coord3={{coord|32|S|116|E}}|title3=Point|description3=Description of point
}}


{{Maplink|frame=yes|plain=yes|frame-width=250|frame-height=280|zoom=6|frame-lat=29.185|frame-long=76.225
|type=shape-inverse|id=Q1174|title=Haryana
|type2=point|id2=Q200663|stroke-width=3|title2=Faridabad
}}

Infoboxes

Mapframes can be included in infoboxes. Using |plain=yes to remove the outer frame is recommended.

For simple cases with a single feature, {{infobox mapframe}} can be used instead (see that template's documentation for details).

Mitchell Freeway
Map of Perth's northern suburbs with Mitchell Freeway highlighted in red
TypeFreeway
{{Infobox Australian road
| location = {{maplink |type=line |frame=yes |plain=yes |frame-align=center |frame-lat=-31.8262 |frame-long=115.7877 |zoom=9}}
  ...  (other parameters omitted)  ...
}}

The raw parameter

The "raw" parameter allows the same inputs as the full <maplink> function. It allows you to:

  • Use GeoJSON data directly
  • Use Wikidata queries to obtain information for the map
  • Use templates - if a map includes direct GeoJSON or many components, placing the data in a template will avoid cluttering the article text

See mw:Help:Extension:Kartographer for instructions.

Raw GeoJSON example

{{maplink|raw={{Wikipedia:Map data/Main Roads Western Australia/Forrest Highway}}|text=Route map}}

(Link to GeoJSON data subpage: Wikipedia:Map data/Main Roads Western Australia/Forrest Highway)

Raw Wikidata query examples

{{maplink|frame=yes|text=Ten countries|raw={
  "type": "ExternalData",
  "service": "geoshape",
  "query": "
SELECT * WHERE {
  ?id wdt:P463 wd:Q1065 .
} LIMIT 10
"}
|frame-width=600|frame-height=400|frame-lat=25|frame-long=10|zoom=1
}}


{{maplink|frame=yes|raw={
  "type": "ExternalData",
  "service": "geoshape",
  "query": "
SELECT ?id ?head
  (SAMPLE(?img) as ?img) 
  (min(?partyId) as ?party) 
  (if(?party = '0', '#800000', if(?party = '1', '#000080', '#008000')) as ?fill)
  (concat('[[', substr(str(?link),31,500),  '{{!}}', ?headLabel, ']]') as ?title)
  (concat(?stateLabel, '\\n', '[[File:', substr(str(?img), 52, 500), '{{!}}200px]]') as ?description)
WHERE {  
  ?id wdt:P31 wd:Q35657 .
  ?id wdt:P6 ?head .
  ?head wdt:P102 ?party .
  BIND(if(?party = wd:Q29468, '0', if(?party = wd:Q29552, '1', '2')) as ?partyId) 
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language 'en' .
    ?head rdfs:label ?headLabel .
    ?id rdfs:label ?stateLabel .
  }
  OPTIONAL {
    ?head wdt:P18 ?img .
  }
  ?link schema:about ?head .
  ?link schema:isPartOf <https://en.wikipedia.org/> .
} GROUP BY ?id ?head ?headLabel ?link ?stateLabel
"}|frame-width=600|frame-height=400|frame-lat=52|frame-long=-110|zoom=3}}

Gotchas

  • When retrieving lines or shapes from OSM, you can't style the fill color or the opacity level of fills or strokes (unless you use the |raw= parameter)
  • The following code utilising the |raw= parameter won't work because the curly brace to close the GeoJSON is adjacent to the curly braces to close the template:
{{Maplink|raw= {"type": "ExternalData","service": "geoshape","ids": "Q13518258"}}}
To fix it, put a space before the two template braces or move them to a separate line.

Redirects

  • {{Map link}}
  • {{Mapframe}}

See also