Extension:Kartographer

From mediawiki.org
MediaWiki extensions manual
Kartographer
Release status: stable
Implementation Tag
Description Allows to add maps to pages as a frontend to mapping services
Author(s) Yuri Astrakhan (yuriktalk)
Compatibility policy Snapshots releases along with MediaWiki. Master is not backward compatible.
MediaWiki 1.39+
Database changes No
License MIT License
Download
Help Help:Extension:Kartographer
Example See below on this page
  • $wgKartographerSimpleStyleMarkers
  • $wgKartographerSrcsetScales
  • $wgKartographerStaticFullWidth
  • $wgKartographerUsePageLanguage
  • $wgKartographerParsoidVersion
  • $wgKartographerStaticMapframe
  • $wgKartographerDfltStyle
  • $wgKartographerFallbackZoom
  • $wgKartographerParsoidSupport
  • $wgKartographerMapServer
  • $wgKartographerWikivoyageMode
  • $wgKartographerMediaWikiInternalUrl
  • $wgKartographerStyles
  • $wgKartographerUseMarkerStyle
  • $wgKartographerNearby
  • mapframe
  • maplink
Quarterly downloads 76 (Ranked 79th)
Public wikis using 898 (Ranked 289th)
Translate the Kartographer extension if it is available at translatewiki.net
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.

Usage[edit]

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.

Example[edit]

Map
Map of London


Installation[edit]

  • Install the JsonConfig extension as described in its documentation which is required to run this extension.
  • Download and move the extracted Kartographer folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Kartographer
  • 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 file:
    wfLoadExtension( 'Kartographer' );
    
  • Configure as required.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Configuration[edit]

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.
$wg KartographerStaticFullWidth
1024
The actual width of static map images when a ‎<mapframe> uses the special value width="full". Relevant on wikis in static mode or when JavaScript is disabled. It's recommended to use one of the $wgImageLimits widths for consistency.
$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.
$wgKartographerSimpleStyleMarkers
true
Use an api to generate markers using the simplestyle-spec for features. Should be set to false for most applications outside WMF. Otherwise images of markers are assumed to be hosted on the map server.


API[edit]

This extension provides two internal APIs.

Implementation[edit]

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:
  • 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.


Goals[edit]

General goals[edit]

  • 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. 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 goals[edit]

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

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


See also[edit]