Jump to content

Template:Maplink/doc

From Wikimania

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:

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.

Basic usage

Map
Mapframe example
  • Additional parameters are available to customise the displayed map.

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=
}}

Parameters

[edit source]

For overall display

[edit 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 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.
If frame latitude and longitude are not set by parameters, then frame coordinates can be determined automatically: either from the point feature specified in |coord= (if set), or coordinates will be retrieved from Wikidata (if available – for either the item specified in |id= parameter, or for the page the template is placed on)

Raw GeoJSON

[edit 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

[edit 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)
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
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, allowing the map below to still be seen.
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 (    )

Examples and tips

[edit source]

Multiple features

[edit 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

Lua error in Module:Mapframe at line 184: attempt to perform arithmetic on local 'lat_d' (a nil value).

{{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
}}

Map

{{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

[edit 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
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

[edit 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

[edit source]
<maplink>: Couldn't parse JSON: Syntax error
{{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 example

[edit source]
Map
Map
{{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

[edit 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

[edit source]
  • {{Map link}}
  • {{Mapframe}}

See also

[edit source]