Extension:Kartographer

Revision as of 14:59, 28 November 2020 by Joelmartin (talk | contribs) (Created page with " The '''Kartographer''' extension lets you display maps (based around OpenStreetMap) in wiki pages. It was specifically designed in order to run on...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.

Note: the tile server used by default by the Wikimedia Foundation is not available to 3rd parties. Please use your own tileserver.

Usage

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

Example

 
Map of London


Installation

Template:ExtensionInstall

Configuration

Configuration settings
parameter default comment
$wgKartographerWikivoyageMode
false
Enables Wikivoyage mode.
$wgKartographerUseMarkerStyle
false
Allows Kartographer to extract CSS style to be used by the link from the GeoJSON.
$wgKartographerStaticMapframe
false
Defines if the map will be a static image.
$wgKartographerEnableMapFrame
true
Enables the <mapframe> tag to be used to create static or interactive maps.
$wgKartographerMapServer
"https://maps.wikimedia.org"
Server providing the map tiles
$wgKartographerStyles
["osm-intl", "osm"]
Available map styles on $wgKartographerMapServer

Implementation

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

General goals

  • 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 goals

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

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

Conflict with FlaggedRevs

Because of technical issues, some Wikipedias that implement a specific setting of Extension:FlaggedRevs cannot show the mapframe tag.

See phab:T191585 and phab:T151665 for more information.


Template:OnWikimedia