Leaflet SMW queries
Maps adds a Leaflet result format as part of its integration with Semantic MediaWiki. This result format can be used to visualize queried data onto maps.
Syntax
Maps shown with the Leaflet result format can be customized using various parameters. Example demonstrating usage of the Leaflet-only geojson
parameter:
{{#ask: [[Coordinates::+]] | format=leaflet | geojson=Berlin | zoom=9 | center=Berlin | ?Coordinates }}
- Result
Parameters
⧼validator-describe-header-parameter⧽ | ⧼validator-describe-header-aliases⧽ | ⧼validator-describe-header-type⧽ | ⧼validator-describe-header-default⧽ | ⧼validator-describe-header-description⧽ |
---|---|---|---|---|
width | - | ⧼validator-type-dimension⧽ | auto | Allows setting the width of the map. By default pixels will be assumed as unit, but you can explicitly specify one of these units: px, ex, em, %. |
height | - | ⧼validator-type-dimension⧽ | 350 | Allows setting the height of the map. By default pixels will be assumed as unit, but you can explicitly specify one of these units: px, ex, em. |
centre | center | ⧼validator-type-string⧽ | no | The location on which the map should be centered |
title | - | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | Allows setting text that will be displayed in the pop-ups of all markers that do not have a specific title.
When used together with label, the title will be bold and underlined. |
label | text | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | Allows setting text that will be displayed in the pop-ups of all markers that do not have a specific label. |
icon | - | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | Allows setting the icon used for all markers. |
lines | - | ⧼validator-type-mapsline-list⧽ | ⧼validator-describe-empty⧽ | Lines to display |
polygons | - | ⧼validator-type-mapspolygon-list⧽ | ⧼validator-describe-empty⧽ | Polygons to display |
circles | - | ⧼validator-type-mapscircle-list⧽ | ⧼validator-describe-empty⧽ | Circles to display |
rectangles | - | ⧼validator-type-mapsrectangle-list⧽ | ⧼validator-describe-empty⧽ | Rectangles to display |
maxzoom | - | ⧼validator-type-integer⧽ | no | The maximum zoom level |
minzoom | - | ⧼validator-type-integer⧽ | no | The minimum zoom level |
copycoords | - | ⧼validator-type-boolean⧽ | no | Show a dialog when clicking on a marker from which its coordinates may be copied |
static | - | ⧼validator-type-boolean⧽ | no | Make the map static |
zoom | - | ⧼validator-type-integer⧽ | no | The zoom level for the map. For maps with markers this will default to the most zoomed in level that still shows all markers. |
defzoom | - | ⧼validator-type-integer⧽ | 14 | Allows setting the default zoom level of the map. |
layers | layer | ⧼validator-type-string-list⧽ | OpenStreetMap | The layers that will be available in the layer selector. The first layer will be shown when the map loads. |
image layers | image layer, imagelayers, imagelayer | ⧼validator-type-string-list⧽ | ⧼validator-describe-empty⧽ | Image base layers. The first layer will be shown by default. If any images are specified, they will be used instead of the regular map layers. |
overlays | overlaylayers | ⧼validator-type-string-list⧽ | ⧼validator-describe-empty⧽ | The overlay layers that will be shown when the map loads. |
resizable | - | ⧼validator-type-boolean⧽ | no | Makes the map resizable by dragging at its lower right corner. |
fullscreen | enablefullscreen | ⧼validator-type-boolean⧽ | no | Enable fullscreen button |
scrollwheelzoom | scrollzoom | ⧼validator-type-boolean⧽ | yes | Indicates if mouse scrolling should be enabled or not. |
cluster | markercluster | ⧼validator-type-boolean⧽ | no | Allows merging of multiple nearby markers into one marker |
clustermaxzoom | - | ⧼validator-type-integer⧽ | 20 | The maximum zoom level where clusters may exist. |
clusterzoomonclick | - | ⧼validator-type-boolean⧽ | yes | Whether the default behaviour of clicking on a cluster is to zoom into it. |
clustermaxradius | - | ⧼validator-type-integer⧽ | 80 | The maximum radius that a cluster will cover. |
clusterspiderfy | - | ⧼validator-type-boolean⧽ | yes | When you click a cluster at the bottom zoom level we spiderfy it so you can see all of its markers. |
geojson | - | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | URL of a file or name of the page containing GeoJSON data |
clicktarget | - | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | When clicking on the map you will be sent to this URL. %lat% is replaced by the latitude and %long% by the longitude |
staticlocations | locations, points | ⧼validator-type-mapslocation-list⧽ | ⧼validator-describe-empty⧽ | A list of locations to add to the map together with the queried data. Like with display_points, you can add a title, description and icon per location using the tilde "~" as separator. |
showtitle | show title | ⧼validator-type-boolean⧽ | yes | Show a title in the marker info window or not. Disabling this is often useful when using a template to format the info window content. |
hidenamespace | hide namespace | ⧼validator-type-boolean⧽ | yes | Show the namespace title in the marker info window |
template | - | ⧼validator-type-string⧽ | no | A template to use to format the info window contents. |
userparam | - | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | A value passed into each template call, if a template is used |
activeicon | - | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | Icon to be displayed instead of default marker, when active page is equal to query result |
pagelabel | - | ⧼validator-type-boolean⧽ | no | When set to "yes", all markers will have an "inlineLabel" with a link to the page containing the coordinates for the marker |
ajaxcoordproperty | - | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | Name of the coordinate property which is used to build the ajax query. |
ajaxquery | - | ⧼validator-type-string⧽ | ⧼validator-describe-empty⧽ | A second query that is sent via ajax to fetch additional coordinates. |
Parameter examples
Dynamic coordinate fetching (ajaxquery)
Initially only includes Berlin onto the map. When moving the map around or changing zoom, the map looks for extra pages with the Has Coordinates property within the visible area. This is great for large data sets where loading all data on the map at once is not feasible.
{{#ask: [[Example data:Berlin]] | format=leaflet | ?Coordinates | ajaxquery = [[Category:Cities]] | ajaxcoordproperty = Coordinates | zoom=8 | minzoom=5 | maxzoom=8 | center=Berlin }}
Marker clustering
{{#ask: [[Category:Cities]] | format=leaflet | ?Coordinates | cluster=on | zoom=4 }}
Template (simple)
Adding a link to maps.google.com by using a template. See template "Google Maps Link".
{{#ask: [[Category:Cities]] | format=leaflet | ?Coordinates | template=Google Maps Link }}
Template (advanced)
This example shows usage of multiple queried values via the "City Popup" template.
{{#ask:[[Category:Cities]] | format=leaflet | ?Coordinates | ?Located in | ?Population | ?Surface area | template=City Popup | showtitle=off }}