Extension:Kartographer

MediaWiki extensions manual
OOjs UI icon advanced-invert.svg
Kartographer
Release status: stable
Complex map - marker, article link and image.jpg
Implementation Tag
Description Allows to add maps to pages as a frontend to mapping services
Author(s) Yuri Astrakhan (yuriktalk)
MediaWiki 1.36+
PHP 7.2
Database changes No
License MIT License
Download
Help Help:Extension:Kartographer
Example See below on this page
  • $wgKartographerSimpleStyleMarkers
  • $wgKartographerSrcsetScales
  • $wgKartographerStyles
  • $wgKartographerUsePageLanguage
  • $wgKartographerFallbackZoom
  • $wgKartographerStaticMapframe
  • $wgKartographerDfltStyle
  • $wgKartographerVersionedStaticMaps
  • $wgKartographerEnableMapFrame
  • $wgKartographerMapServer
  • $wgKartographerWikivoyageMode
  • $wgKartographerVersionedLiveMaps
  • $wgKartographerUseMarkerStyle
  • $wgKartographerVersionedMapdata
  • $wgKartographerNearby
* mapframe
  • maplink
Translate the Kartographer extension if it is available at translatewiki.net

Check usage and version matrix.

Issues Open tasks · Report a bug

The Kartographer extension lets you display maps (based around OpenStreetMap) in wiki pages. It was specifically designed in order to run on Wikimedia sites such as Wikivoyage and Wikipedia, although it can be used on any wiki.

The tile server at maps.wikimedia.org is not available to 3rd parties. Please use your own tileserver. If you are a Wikimedia affiliate, see wikitech:Maps/External usage instead.

UsageEdit

Kartographer defines the wikitext tags ‎<mapframe>...‎</mapframe> and ‎<maplink>, which display a map and a link to a map on the page respectively. See Help:Extension:Kartographer for how to call these tags.

ExampleEdit

 
Map of London


InstallationEdit

  • Install the JsonConfig extension as described in its documentation which is required to run this extension.
  • Download and place the file(s) in a directory called Kartographer in your extensions/ folder.
  • Only when installing from Git, run Composer to install PHP dependencies, by issuing composer install --no-dev in the extension directory. (See task T173141 for potential complications.)
  • Add the following code at the bottom of your LocalSettings.php :
    wfLoadExtension( 'Kartographer' );
    
  • Configure as required.
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

To users running MediaWiki 1.24 or earlier:

The instructions above describe the new way of installing this extension using wfLoadExtension(). If you need to install this extension on these earlier versions (MediaWiki 1.24 and earlier), instead of wfLoadExtension( 'Kartographer' );, you need to use:

require_once "$IP/extensions/Kartographer/Kartographer.php";

ConfigurationEdit

Configuration settings
parameter default comment
$wgKartographerMapServer
null
Server providing the map tiles. This is the only setting that doesn't have a default. You must provide a value. Note that the Wikimedia tile server https://maps.wikimedia.org can't be used outside of the Wikimedia cluster. See openstreetmap:Tile servers for tile servers.
$wgKartographerStyles
["osm-intl", "osm"]
Available map styles users can request from your $wgKartographerMapServer via mapstyle="…".
$wgKartographerDfltStyle
"osm-intl"
Default map style to be used. Must be one of the values from $wgKartographerStyles.
$wgKartographerSrcsetScales
[ 1.3, 1.5, 2, 2.6, 3 ]
Set of allowed high-DPI pixelratios supported by your $wgKartographerMapServer, to be used in <img srcset="…"> and $wgKartographerMapServer URLs. Must be in incremental order. Doesn't need to start with 1, this happens automatically. Note that most tile servers don't support this at all and thus require setting this to an empty array.
$wgKartographerUseMarkerStyle
false
Allows Kartographer to extract marker styles from the GeoJSON to style a ‎<maplink> accordingly. Currently only the marker-color is considered.
$wgKartographerWikivoyageMode
false
Enables the group feature where different ‎<maplink> and ‎<mapframe> tags can access each others data via group="…" and show="…" attributes. See Help:Extension:Kartographer#Groups. Disabled by default. Meant to be enabled on Wikivoyage.
$wgKartographerStaticMapframe
false
Disables the module that turns ‎<mapframe> tags into interactive mini-maps that can be panned and zoomed without leaving the page. Static maps are recommended on high-traffic wikis where your KartographerMapServer couldn't keep up. Clicking ‎<maplink> and ‎<mapframe> tags to open a fullscreen interactive map is always possible. Requires a static map renderer like Kartotherian and $wgKartographerEnableMapFrame to be true.
$wgKartographerEnableMapFrame
true
Enables the ‎<mapframe> tag to embed mini-maps directly into pages. The ‎<maplink> tag is always enabled.
$wgKartographerUsePageLanguage
true
Use the language of the page instead of that of the language of the territory mapped. This sets the lang parameter of the tiles requested.
$wgKartographerFallbackZoom
13
Fallback zoom value when no zoom="…" is given. Must be an integer between 0 (map shows the entire earth) and 19 (as close as possible). Currently only works with dynamic maps.

APIEdit

This extension provides two internal APIs.

ImplementationEdit

Kartographer makes use of a suite of open-source, open-data tools for displaying maps:

  • On the client side (within the browser):
    • Leaflet, a JavaScript mapping library
  • On the server side:
    • Kartotherian, a map tile service developed by the Wikimedia Foundation, which itself contains code from Mapbox. Third party installations should use non-Wikimedia tile servers listed on openstreetmap:Tile servers
      • Example, for maps from "wmflabs Hike & Bike" with this setting in LocalSettings.php
$wgKartographerMapServer = 'https://tiles.wmflabs.org';
$wgKartographerDfltStyle = 'hikebike';
$wgKartographerSrcsetScales = []; /* Because no support for HiDPI tiles */
  • Generating the data in advance:
    • Tilerator, a tile pre-generation service also developed by the Wikimedia Foundation
    • OpenStreetMap, an open map data source, the source for the map data as well as for most of the points of interest (POIs).

For more information on these, see Maps#Production maps cluster. For more information on the production aspects of running these services, see the Wikitech Maps page.

GoalsEdit

General goalsEdit

  • A simple method to insert a map into an article without requiring common.js code changes
  • Ability to add extra information (marks, area, popups, text, links) to the map
  • Ability to gather map usage statistics (KPI) to better gauge how and what should be improved.
  • TBD: experimentation - if the user is aware of the privacy implications, the map should be able to show external data from non-production source, e.g. wmflabs. Static, server-side rendered images will not include the extra data added via this method until the extra data source is hosted in the secure production environment and can be shown without the user action.

Wikivoyage goalsEdit

Wikivoyage tends to have a large number of points of interest (POIs), such as museums and restaurants, listed on a page (see example and scroll down to the "See" section). Each POI is usually added with a template, but all of them should appear on the same map. Also, each POI should be referable by showing an icon with a number, both in the text of the article, and on the map:

  • Ability to incrementally add features to the map. For example, each usage of the restaurant template adds a single POI, and the map shows all of them.
  • Added features need to be indexable. E.g. the first restaurant template would show [1] on the page, and map would show POI as a clickable [1] element. There could be multiple index counters at the same time, each for its own type of POIs.

Known problemsEdit

See the corresponding project(s) in Phabricator for a complete list of bugs.