Help:Extension:Kartographer/ru

Расширение Kartographer позволяет вставлять интерактивные карты на страницах проектов Викимедиа. На этой странице описано, как использовать теги расширения Kartographer: для вставки интерактивных карт в викистраницы и  для создания ссылок на такие карты.

С чего начать
 Этот код вставляет простую интерактивную карту, такую, как карта "Центр Сан-Франциско (Downtown San Francisco)" в этом разделе.


 * На Викигиде и test2wiki генерируется интерактивная карта. Одиночное нажатие открывает окошко карты, а двойное (либо нажатие на иконку в правом углу) — полноэкранную карту, которая также интерактивна.
 * В Википедии и других проектах Викимедиа, генерируется статичная карта. Одиночное нажатие открывает полноэкранную карту, которая интерактивна.

Параметр  ("выровнять") позволяет задать выравнивание слева, справа или по центру. Параметр  ("изменение масштаба") может принимать значения от 0 до 19, где ноль это минимальный масштаб, а 19 - максимальный.

Также карты можно добавлять в визуальном редакторе (VisualEditor), см. ниже.

Если на карте есть заданные объекты (features), как описано ниже, ее масштаб (zoom), широту (latitude) и долготу (longitude) не требуется специально указывать, так как карта автоматически будет сгенерирована со всеми требуемыми объектами на ней. При этом указывать ширину и высоту карты всё равно всегда необходимо.

Использование
 { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122.3988, 37.8013] }, "properties": { "title": "Exploratorium", "description": "", "marker-symbol": "museum", "marker-size": "large", "marker-color": "0050d0" } }

Содержимое должно быть либо пустым, либо содержать валидный код GeoJSON с оформлением (styling), который предоставляется каким-либо редактором GeoJSON. Расширение поддерживает спецификацию simplestyle со значками Maki icons (лицензия CC-0). На странице Help:Extension:Kartographer/Icons содержится полный список поддерживаемых иконок.

Рамки (Frames)
Безрамочные карты годятся для вставки в качестве части шаблона, карты с рамкой же больше подходят для вставки напрямую на страницу вручную или же с использованием визуального редактора.


 * Чтобы вставить карту без рамки, добавьте параметр "frameless" (безрамочная):
 * Чтобы добавить подпись названия (caption) карты (и объектов на ней), используйте параметр.

==

также поддерживает дополнительный параметр "text", который используется для задания текста ссылки вместо координат:

Добавьте дополнительные классы к с помощью параметра class. Например,, чтобы скрыть маркер, стоящий перед ссылкой.

Тег может содержать тот же geojson, что и тег.

=== . Если этот атрибут не задан, отобразятся координаты места (пример:  может принимать отрицательные значения - числовое   или буквенное  . При таком выборе каждое отрицательное числовое значение   будет заменено инкрементальным счётчиком, а буквенное   аналогично буквенным счётчиком.

Если GeoJSON имеет более одного счетчика, то в качестве текста ссылки отобразится значение первого из них. По желанию редакторы могут добавлять поясняющие слова (suffixes) без пробела к слову number для одновременного отображения на одной странице разных счетчиков для разных типов объектов. Тем самым с помощью записи вида  ("музей номер") музеи получат иной счетчик, чем бары, которые можно пометить отдельным счетчиком.

Имеет смысл помечать отдельным цветом каждую группу отмеченных счетчиками объектов. Все данные, добавляемые через, также отобразятся на всех картах, вставленных с помощью , если не использован атрибут.

может быть расширен до

Атрибуты,   и   задают местоположение всплывающей карты. Используйте  для ввода текста ссылки (может быть любым валидным элементом разметки вики-текста). Используйте, чтобы добавить содержимое данного тэга в именованную группу (см. ниже).

Маркеры
На карты можно добавлять маркеры для обозначения какого-либо места. Эти элементы добавляются с помощью формата JSON. содержит полный список иконок, которые можно использовать в качестве значков для маркеров.

Результат:

Маркеры также могут содержать информацию, например, изображения или ссылки на статьи.

Результат (нажмите на маркер чтобы увидеть его содержимое)

Можно использовать идентификаторы Wikidata ID для данных с OpenStreetMap (OSM), чтобы обозначить границы графическим выделением с помощью сервиса контуров географических объектов geoshape.

Результат:

Чтобы залить (замаскировать) всю карту кроме какой-либо указанной вами зоны другим цветом, можно использовать идентификаторы таких зон с сайта Викиданных - Wikidata ID.

Результат:

Маркеры могут быть пронумерованы.

Результат:

Маркеры могут использовать буквы.

Результат:

Несколько маркеров разных размеров на карту можно добавить с помощью коллекций объектов ("feature collection").

Результат:

На карты можно добавлять группы маркеров разного цвета и разных счетчиков.

Результат:


 * Маркеры на карте могут использовать любой цвет, имеющий RGB-значения (быстрый поиск в интернете по запросу "Цветовой миксер RGB" покажет несколько вариантов).
 * Маркеры могут быть одного из трех размеров: small (маленький), medium (средний) или large (большой).
 * GeoJSON из другого источника можно скопировать (с учетом ограничений со стороны лицензии и авторских прав) и вставить в maplink (например)
 * Если карты создаются на Викигиде, может быть полезно использовать Группы (см. ниже).
 * Чтобы узнать больше о добавлении внешних данных на карты, см. раздел Внешние данные (External data).

Группы
Для использования на Викигиде требуется отобразить карту, данные которой указаны в другом месте страницы. Например, может быть несколько туристических объектов, заданных тегами, и одна общая карта для их отображения на странице сбоку.

Концепция группирования дает редакторам возможность выводить данные в несколько тэгов и.

По умолчанию, данные внутри тэга или  отображаются только для самого этого тэга и больше нигде не показываются.

Если тэги или  укажут атрибут , данные в этих тэгах будут помещены в именованную группу вместе со всеми другими данными под тем же именем группы. В результате любые тэги с одинаковым именем группы покажут одни и те же картографические данные, а каждый тэг может в порядке возрастания добавлять данные в группу.

В тэге можно задать также отображение других групп - вне зависимости от его принадлежности к какой-либо группе, если указать параметр  («показать»). Также можно указать несколько названий групп, разделенных запятыми. Название группы может состоять только из строчных английских букв. Такая матрица покажет, какие данные отобразятся для каждого тэга.

Внешние данные
 { "type": "ExternalData", "service": "geoshape", "ids": "Q797" }

В дополнение к рисованию многоугольников («полигонов») с помощью GeoJSON, предусмотрена возможность также получать контуры хорошо известных географических объектов по их идентификаторам на Викиданных - Wikidata ID при наличии такой отметки в базе данных OpenStreetMap. К примеру, идентификатор Wikidata для Аляски Q797, и мы можем задать отображение ее контура на карте, используя ссылку на «внешние данные» - "external data" reference. Можно указать не один, а несколько идентификаторов, разделив их запятой. Чтобы выделить цветовой маской сами интересующие объекты на карте, используйте сервис контуров географических объектов "geoshape". Чтобы обратить такое выделение и закрасить маской всё остальное на карте, используйте сервис "geomask".

Получение контуров географических объектов (GeoShapes) посредством запроса к Викиданным (Wikidata Query)
 { "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(, ?headLabel, ) as ?title) (concat(?stateLabel, '\\n', '') 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  .} GROUP BY ?id ?head ?headLabel ?link ?stateLabel" }

Хотя это полезно в случаях простого применения, когда идентификатор на Викиданных (Wikidata ID) хорошо известен, иногда может возникнуть необходимость получить список таких идентификаторов как результат запроса к Викиданным. Запрос на языке SPARQL возвращает список всех штатов США в колонке ID ответа на запрос, и сервис контуров географических объектов (geoshapes service) к каждому штату добавляет его геометрические очертания. Все другие колонки в ответе на SPARQL-запрос становятся значениями в объекте "properties" («свойства»). Колонка "fill" («заливка») меняет окраску изображения территории штата. Колонка "title" показывает, как зовут губернатора штата, а "description" («описание») имеет вики-разметку для отображения названия штата и портрета его губернатора. Для редактирования этого запрос скопируйте параметр запроса после символа "#" на ''' https://query.wikidata.org/#... ''':

Данные карты с Викисклада

 * Дополнительная информация: 

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

 { "type": "ExternalData", "service": "page", "title": "Neighbourhoods/New York City.map" }

Combining multiple data types
 [ {    "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" } } ]

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

 [ {    "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      ]    }  } ]

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

Styling Wikidata ID elements
 { "type": "ExternalData", "service": "geoline", "ids": "Q2108", "properties": { "title": "Highway I-696", "description": "", "stroke": "#ffb100", "stroke-width": 8 } }

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

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:

 { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {"fill": "#ff0000","fill-opacity": 0.7,"stroke-width": 0}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 77.926025390625, -25.150257104114733 ], [ 80.14251708984374, -25.150257104114733 ], [ 80.14251708984374, -24.43714786161562 ], [ 77.926025390625, -24.43714786161562 ], [ 77.926025390625, -25.150257104114733 ] ] ] } }, { "type": "Feature", "properties": {"stroke": "#fffa00","stroke-width": 5}, "geometry": { "type": "LineString", "coordinates": [ [ 77.926025390625, -25.150257104114733 ], [ 80.14251708984374, -24.43714786161562 ] ] } }, { "type": "Feature", "properties": {"stroke": "#000000","stroke-width": 5}, "geometry": { "type": "LineString", "coordinates": [ [ 77.926025390625, -24.43714786161562 ], [ 80.14251708984374, -25.150257104114733 ] ] } } ] }

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:

 { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": {"stroke": "#000000","stroke-width": 5}, "geometry": { "type": "LineString", "coordinates": [ [ 77.926025390625, -24.43714786161562 ], [ 80.14251708984374, -25.150257104114733 ] ] } }, { "type": "Feature", "properties": {"fill": "#ff0000","fill-opacity": 0.7,"stroke-width": 0}, "geometry": { "type": "Polygon", "coordinates": [ [ [  77.926025390625,  -25.150257104114733  ],  [  80.14251708984374,  -25.150257104114733  ],  [  80.14251708984374,  -24.43714786161562  ],  [  77.926025390625,  -24.43714786161562  ],  [  77.926025390625,  -25.150257104114733  ]  ]  ]  } }, { "type": "Feature", "properties": {"stroke": "#fffa00","stroke-width": 5}, "geometry": { "type": "LineString", "coordinates": [ [ 77.926025390625, -25.150257104114733 ], [ 80.14251708984374, -24.43714786161562 ] ] } } ] }

Варианты рендеринга
The following table shows how a map can be formatted for display on a wiki page. The table contains two columns: the first shows an interactive map via the tag, and the second showing the rendering of an example image with the same options.

Use the width value  in order to make the map take up the full width of the page.  

Map languages
Map labels will try to use the language of the wiki where the embedded map is displayed. If that language is not available, then the map will use fallback language as described.


 * 1) Look for value in the requested language
 * 2) Look for value in a language (or languages) that are specifically defined as fallback languages
 * 3) Look for a transliterated value
 * 4) Look for label in the local language
 * 5) If no value is found, display no label.

You can specify the language to use for labels by adding the  followed by the desired language code. e.g. lang="ja" to display labels in Japanese (if available).

Результат:. This shows map labels in the languages of the area mapped (essentially opting out of internationalization). This post gives more guidance about when, and why, you might wish to user lang="local"—and generally explains how OpenStreetMap multilingual data works.

Without the  attribute, maps will display in the language of the wiki in which they appear.

Map language fallbacks
Initially these fallbacks follow those found in MediaWiki. The language fallbacks for Maps are stored in fallbacks.json and can be made different than the MediaWiki settings. Individual Wikimedia projects can [https://phabricator.wikimedia.org/maniphest/task/edit/form/1/?title=Request%20to%20change%20Maps%20fallback%20for%20XXXX%20Wiki&tags=Maps&description=Please%20provide%20a%20link%20to%20community%20consensus%20for%20this%20change.%0A%0AA%20description%20of%20the%20requested%20fallback%20is%20also%20needed. request a change to this fallback process] in Phabricator. More Technical information can be found in T192701.

Maps use map data, including map label data for all languages, from the open-source mapping project OpenStreetMap. If the map you want to display doesn’t offer labels in the desired language, you can add labels in that language by adding them to OpenStreetMap. To get you started, there is an OpenStreetMap Beginners’ Guide, and guidance about naming conventions.

A community can decide to change its language fallbacks
Read all about changing your language's fallbacks on the Map Improvements project page.

См. также

 * Условия использования сервиса Wikimedia Maps
 * Help:VisualEditor/Maps - How to add and edit maps with the visual editor
 * Информация по использованию объектов OSM на картах
 * Maps project (2015-2017) - Documentation on the Wikimedia engineering activity from the Discovery team from 2015 to 2017
 * Map improvements 2018 - Documentation on the Wikimedia engineering activity from the Collaboration team in 2018
 * Kartographer Developer guide