Aide : Extension : ''Kartographer''

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page Help:Extension:Kartographer and the translation is 73% complete.

Other languages:
العربية • ‎Deutsch • ‎English • ‎español • ‎suomi • ‎français • ‎עברית • ‎Bahasa Indonesia • ‎日本語 • ‎Ripoarisch • ‎македонски • ‎português do Brasil • ‎русский • ‎سنڌي • ‎svenska • ‎中文
PD Note : Si vous modifiez cette page, vous acceptez de placer votre contribution sous licence CC0. Plus d'informations sont disponibles sur les pages d'aide du projet domaine public.
PD

Cette page documente l'utilisation de l'extension Kartographer et de ses balises <mapframe> et <maplink>.

Pour commencer

Downtown San Francisco

Ce code va insérer une simple carte interactive (telle celle visible sur la droite), avec la possibilité de la maximiser en double-cliquant sur le carte ou en cliquant sur l'icône dans le coin à droite.

<mapframe text="Downtown [[wikipedia:San Francisco|San Francisco]]" width=250 height=250 zoom=13 latitude=37.8013 longitude=-122.3988 />

Vous pouvez utiliser le paramètre align pour forcer l'alignement à gauche, à droite ou au centre.

The attribute <tvar|zooms>zoom</> allows for zoom levels between 0 and 19. Zero is the furthest out, 19 the furthest in.


Utilisation de <mapframe>

San Francisco museums

La balise <mapframe> doit être vide ou doit contenir un GeoJSON valide avec mise en forme, tel que produit par un éditeur GeoJSON. Kartographer intègre les spécifications simplestyle avec les icônes Maki (sous licence Creative Commons Zéro).

<mapframe text="San Francisco museums" width=350 height=350 zoom=13 latitude=37.8013 longitude=-122.3988>
{
  "type": "Feature",
  "geometry": { "type": "Point", "coordinates": [-122.3988, 37.8013] },
  "properties": {
    "title": "[[wikipedia:Exploratorium|Exploratorium]]",
    "description": "[[File:Giant_Mirror_at_the_Exploratorium.jpeg|200px]]",
    "marker-symbol": "museum",
    "marker-size": "large",
    "marker-color": "0050d0"
  }
}
</mapframe>

Frames

Frameless maps are good for insertion as part of a template, whereas framed maps are good for insertion directly into the page, either by hand or by using the visual editor.

  • To insert a map without a frame, add the "frameless" attribute: <mapframe frameless ...>
  • To add a caption, use the text="..." attribute.

Note: Adding the text attribute automatically enables a frame, even if there is a frameless attribute.

<maplink>

Changer <mapframe> en <maplink> entraine la création d'un lien vers une carte en plein écran : 37°48′37″N 122°23′58″W

<maplink zoom="13" latitude="37.8103" longitude="-122.3995" />

<maplink> accepte aussi un paramètres supplémentaire « text » pour spécifier le texte du lien à la place des coordonnées : click me

<maplink text="click me" zoom="13" latitude="37.8103" longitude="-122.3995" />

La balise <maplink> peut contenir le même geojson que <mapframe>.

<maplink> et compteurs automatiques

Several groups of automatic counters

<maplink> crée un lien qui affiche une carte en plein écran lors du clic. Le texte du lien peut être initialisé avec l'attribut text. Si cet attribut n'est pas renseigné, les coordonnées seront affichées (exemple : 12°18′0″N 45°36′0″E). Si une carte utilise GeoJSON, le marker-symbol est initialisé avec le ‑number magique ou avec la valeur ‑letter. Dans ce cas, chaque ‑number sera remplacé par un compteur incrémental 1, 2, 3... et ‑letter par les valeurs A...Z.

Si GeoJSON a plus d'un compteur, la valeur du premier sera affiché comme texte du lien. Optionnellement, les contributeurs peuvent ajouter un suffixe pour avoir plusieurs compteurs différents en même temps sur la page. Ainsi, ‑number‑museum aura un compteur différent de ‑number‑bar.

Il serait logique d'utiliser une couleur distincte pour chaque groupe de compteurs. Toutes les donénes ajoutées grâce aux <maplink> seront également affichées dans toutes les cartes insérées par <mapframe>, sauf si un attribut group est utilisé.

{{see
| name=Exploratorium | url=http://www.exploratorium.edu/
| lat=37.8013 | long=-122.3988
| content=A great museum
}}

pourrait être développé en

<maplink zoom=9 latitude=37.8013 longitude=-122.3988>
{
  "type": "Feature",
  "geometry": { "type": "Point", "coordinates": [-122.3988, 37.8013] },
  "properties": {
    "title": "Exploratorium",
    "marker-color": "228b22",
    "marker-symbol": "-number-see"
  }
}
</maplink>

Les attributs zoom, latitude, et longitude contrôlent l'emplacement de la carte surgissante. utilisez $alt pour le texte de l'indication du lien. Utilisez text pour le texte du lien (peut contenir n'importe quelle balise de wikicode valide). Utilisez group pour ajouter le contenu de cet élément au groupe nommé (voir ci-dessous).

Groupes

Avertissement Avertissement : The groups feature is only available in Wikivoyage project (per VisualEditor team request)

Pour l'utilisation sur le projet Wikivoyage, il y a besoin d'afficher une carte pour laquelle les données sont définies quelque part ailleurs sur la page. Par exemple, il peut y avoir de multiples points d'intérêts (POI) définis par les balises <maplink> et une carte commune sur un côte de la page les affichant tous.

Le concept de groupement permet aux contributeurs de partager des données entre plusieurs balises <mapframe> et <maplink>.

Par défaut, les données internes à la balise <mapframe> ou <maplink> ne sont affichées que pour cette balise, et ne seront affichées nul part ailleurs.

Si <mapframe> ou <maplink> spécifient l'attribut group="...", les données dans ces balises seront placés dans un groupe nommé, avec l'ensemble des données ayant le même nom de groupe. Par conséquent, toute balise avec le même nom de groupe affichera les mêmes données cartographiques, et chaque balise pourra ajouter des données supplémentaires au groupe.

Une balise peut aussi afficher d'autres groupes, quelque soit son appartenance au groupe ou non, en spécifiant l'attribut show="...". Plusieurs noms de groupe peuvent être spécifiés, séparés par des virgules. Le nom de groupe ne peut contenir que des lettres anglaises de bas de casse. La grille suivante affiche quelles données sont affichés pour chaque balise.

 1 <maplink>                               -- shows 1
 2 <maplink group='food'>                  -- shows   2   4       8   10
 3 <maplink group='bar'  show='bar'>       -- shows     3           9
 4 <maplink group='food' show='bar'>       -- shows   2 3 4       8 9 10
 5 <maplink              show='bar'>       -- shows     3   5       9
 6 <maplink              show='food,bar'>  -- shows   2 3 4   6   8 9 10
 7 <mapframe>                              -- shows             7
 8 <mapframe group='food'>                 -- shows   2   4       8   10
 9 <mapframe group='bar'  show='bar'>      -- shows     3           9
10 <mapframe group='food' show='bar'>      -- shows   2 3 4       8 9 10
11 <mapframe              show='bar'>      -- shows     3           9    11
12 <mapframe              show='food,bar'> -- shows   2 3 4       8 9 10    12

Données externes

A geoshape of Alaska

En plus de dessiner des polygones en utilisant GeoJSON, vous pouvez aussi obtenir les contours des objets géographiques célèbres grâce à leur ID Wikidata s’ils sont renseignés comme tels dans la base de données d’OpenStreetMap. Par exemple, l’élément Wikidata pour l’Alasja est Q797 et nous pouvons le dessiner sur une carte en utilisant la référence « données externes ». Il est possible d’indiquer plusieurs ID en les séparant par des virgules. Pour créer un masque couvrant les régions d’intérêt, utilisez le service « geoshape ». Pour inverser cela et créer un masque couvrant tout le reste, utilisez le service « geomask ».

Les ID Wikidata sont relativement nouveaux pour la communauté OSM. Il y a seulement 40 000 polygones avec des ID renseignés. Pour en ajouter d’autres, visitez https://www.openstreetmap.org/ et ajoutez la propriété wikidata avec la valeur Q (voir Key:wikidata sur le wiki d’OSM pour une manière plus facile de faire cela). Les données devraient être accessibles à Kartographer sous deux jours. Pour des indications détaillées, regardez Help:Extension:Kartographer/OSMHelp:Extension:Kartographer/OSM.
<mapframe text="A geoshape of Alaska" width=300 height=300 zoom=3 latitude=64.01 longitude=-152.58>
{
  "type": "ExternalData",
  "service": "geoshape",
  "ids": "Q797"
}
</mapframe>


GeoShapes via Wikidata Query

Governors of US states with their party affiliation

While this helps with the simple use cases when the Wikidata ID is well known, sometimes you may want to get a list of IDs as a result of a Wikidata query. A SPARQL query gets a list of all US states in the ID column of the result, and geoshapes service adds the geometrical outlines for each state. All other columns in the SPARQL query result become values in the "properties" object. The "fill" column changes the color of the state. The "title" column shows state governor's name, and "description" has wiki markup to show the state name and the governor's picture. To edit this query, copy the query parameter after the "#" symbol at https://query.wikidata.org/#...:

<mapframe latitude="52" longitude="-110" zoom="3" width="500" height="500" text="Governors of US states with their party affiliation">
{
  "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('[[wikipedia:', 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
"}
</mapframe>

Map data from Commons

Further information: Help:Map DataHelp:Map Data

Map data stored on Commons can be drawn on the map. For example, c:Data:Neighbourhoods/New York City.map:

<mapframe width=300 height=400 zoom=11 latitude=40.7920 longitude=-73.9751>
{
  "type": "ExternalData",
  "service": "page",
  "title": "Neighbourhoods/New York City.map"
}
</mapframe>


Combining multiple data types

Caderousse city wall

You can combine ExternalData, Feature, and FeatureCollection together in the same <mapframe> or <maplink> element:

<mapframe text="Caderousse city wall" width="300" height="300" zoom="15" latitude="44.10200" longitude="4.75600">
[
  {
    "type": "ExternalData",
    "service": "geoshape",
    "ids": "Q13518258",
    "properties": {
      "stroke": "#ffb100",
      "stroke-width": 6,
    }
  },
  {
    "type": "Feature",
    "geometry": { "type": "Point", "coordinates": [4.75566, 44.104498] },
    "properties": {
      "title": "Porte de Castellan"
    }
  },
  {
    "type": "Feature",
    "geometry": { "type": "Point", "coordinates": [4.75829, 44.10258] },
    "properties": {
      "title": "Porte Léon Roche"
    }
  }
]
</mapframe>

Map data from commons can be combined with other types of data:

<mapframe width="300" height="300" zoom="12" latitude="40.782222" longitude="-73.965278">
[
  {
    "type": "ExternalData",
    "service": "page",
    "title": "Neighbourhoods/New York City.map"
  },
  {
    "type": "ExternalData",
    "service": "geoshape",
    "ids": "Q160409",
    "properties": {
      "fill": "#07c63e", "title": "Central Park"
    }
  },
  {
    "type": "Feature",
    "properties": {"title": "Roosevelt Island", "marker-color": "f01080"},
    "geometry": {
      "type": "Point",
      "coordinates": [
        -73.94511222839355,
        40.76734665426719
      ]
    }
  }
]
</mapframe>


Styling

Styling Wikidata ID elements

Interstate Highway I-696

For external data, you can also add styles and titles, using the properties keyword:

<mapframe text="Interstate Highway I-696" width="300" height="300" latitude="42.4883" longitude="-83.2297" zoom="9">
{
  "type": "ExternalData",
  "service": "geoline",
  "ids": "Q2108",
  "properties": {
    "title": "Highway I-696",
    "description": "[[File:I696-1988.JPG|200px]]",
    "stroke": "#ffb100",
    "stroke-width": 8
  }
}
</mapframe>

The main style keys are: "stroke" (color), "stroke-width", "stroke-opacity", "fill" (color), "fill-opacity".

Overlapping elements

Map elements that overlap are drawn in the order in which they are written in the code. For instance, if a map includes two lines that overlap, the line that is defined first will appear beneath the line that is defined second. The following examples show how this can affect the appearance of the map:

The code for the map above includes three elements, all of which use GeoJSON's "feature" functionality. The first feature is a "Polygon" - the red rectangle. This is followed by two "LineString" features. The yellow line is defined first, so it appears beneath the black line. Note that the hierarchy used to draw elements applies regardless of whether the data is raw GeoJSON or comes from a Wikidata ID or Commons data page.

The map below changes the order from that of the first example: the black line is defined first and is thus moved to the bottom of the stack:

Rendering options

The following table shows how a <mapframe> map can be formatted for display on a wiki page. The table contains two columns: the first shows an interactive map via the <mapframe> tag, and the second showing the rendering of an example image with the same options.

Options Rendering a <mapframe> Rendering an image
  • Format: frame
  • Alignment: undefined
... text text text
text text text ...
... text text text
Example en.svg
text text text ...
  • Format: frame
  • Alignment: none
Not supported, see task T157502. ... text text text
Example en.svg
text text text ...
  • Format: frame
  • Alignment: left
... text text text
text text text ...
... text text text
Example en.svg
text text text ...
  • Format: frame
  • Alignment: center
... text text text
text text text ...
... text text text
Example en.svg
text text text ...
  • Format: frame
  • Alignment: right
... text text text
text text text ...
... text text text
Example en.svg
text text text ...
  • Format: frameless
  • Alignment: undefined
... text text text text text text ...

Inconsistent, see task T157640.
... text text text Example en.svg text text text ...
  • Format: frameless
  • Alignment: none
Not supported, see task T157502. ... text text text
Example en.svg
text text text ...
  • Format: frameless
  • Alignment: left
... text text text text text text ... ... text text text
Example en.svg
text text text ...
  • Format: frameless
  • Alignment: center
... text text text text text text ... ... text text text
Example en.svg
text text text ...
  • Format: frameless
  • Alignment: right
... text text text text text text ... ... text text text
Example en.svg
text text text ...

Internationalization

Map labels for locations are localized. By default the map will be in the same language as the page it is embedded it. If that is not available then the configured fallback(s) in MediaWiki for that language. If the label is not available in that language, then English. Finally, if nothing else is available, then the local name is used.

Translations to the OSM data are welcome.

See also