Template:Maplink
This template uses Lua: |
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:
- GeoJSON files cannot currently be directly uploaded. Instead, on Commons, create a page that is in the
Data:
namespace and ends in.map
– see mw:Help:Map Data for further information. - To make OpenStreetMap (OSM) features available, add the Wikidata key to the OSM relation (and wait 1 or 2 days) – see mw:Help:Extension:Kartographer#External_data and mw:Help:Extension:Kartographer/OSM for further information.
Uses
[change source]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
[change source]Basic usage
- Data page 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)
- Raw GeoJSON data (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)
- Line of a border or a linear feature from OSM:
{{maplink|type=line|id=}}
(Wikidata id only required if another article's Wikidata page is to be used)
- Shape from OSM:
{{maplink|type=shape|id=}}
(Wikidata id only required if another article's Wikidata page is to be used)
- Inverted shape from OSM:
{{maplink|type=shape-inverse|id=}}
(Wikidata id only required if another article's Wikidata page is to be used)
- Point feature (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)
- ...from Wikidata:
- Circle (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)
- ...from Wikidata:
- 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
[change source]For overall display
[change source]- 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 linkinline,title
- Displays the inline link as well as the title linktitle,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
to19
(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
, orright
; default isright
- 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
[change source]- 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
[change source]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) and1
(fully opaque); default is1
- 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) and1
(fully opaque); default is0.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
[change source]Multiple features
[change source]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
[change source]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 | |
Type | Freeway |
{{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
[change source]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
[change source]{{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
[change source]{{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
[change source]- 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
[change source]- {{Map link}}
- {{Mapframe}}
See also
[change source]- Template:Mapbox – a derivative of this template that puts the link inside a right-aligned box
- Template:Attached KML