Википроект Картография создан для организации и стандартизации карт, которые используются в Wikivoyage.
В статьях Викигида в основном используются динамические карты. Картографическая основа поступает с серверов Wikimedia, а интерфейс проекта позволяет наносить на неё точки (маркеры), линии и контуры (заливки). Делается это при помощи шаблонов. В некоторых случаях используются статические (нарисованные от руки и загруженные в проект) карты, которым посвящён отдельный раздел.
Динамические карты
правитьСоздание карты: к каждой статье прилагается карта, генерируемая шаблоном {{geo}}. Он использует несколько параметров, {{geo|50.064605|14.422474|zoom=16|boundary=Q12345}}
- Первые два (безымянные) — положение центра карты (широта и долгота)
- zoom — увеличение
- boundary — граница, создающая заливку и «подсвечивающая» территорию района, региона или города
Добавление объектов на карту: шаблон {{listing}} задаёт координаты объекта (параметры lat=, long=) и помещает его на карту.
Создание карты районов/регионов: в некоторых случаях нужно показать на карте сразу несколько районов города или регионов страны. Для этого используется шаблон {{regionlist}}. Он похож на {{geo}}, но добавляет карту непосредственно в статью и содержит несколько дополнительных параметров:
- width, height — ширина и высота карты
- regionXname — название района/региона X
- regionXboundary — граница района/региона X
Где брать координаты объекта?
правитьВ нынешний век найти координаты объекта обычно нетрудно. Обычно достаточно воспользоваться картографическим сервисом:
- geomap — OpenStreetMap с интерфейсом под Wikivoyage
- Яндекс-карты — щёлкаем на нужную точку, открывается окошко с координатами
- Google Maps — аналогично
В более сложных случаях, если речь идёт о местности, не прорисованной на картах, можно воспользоваться спутниковыми снимками: Яндекс, Google или Wikimapia, где кроме того многие объекты обведены. Наконец, самый надёжный и консервативный способ — пойти с навигатором и измерить координаты самостоятельно.
Где брать границы?
правитьДля создания заливки нужно передать системе границы объекта, т.е. задать контур, который будет нанесён на карту. Проще всего взять контур с OpenStreetMap. Если в карточке Викиданных уже есть идентификатор ID отношения в OpenStreetMap (P402), достаточно сослаться на Викиданные, boundary= Q12345, и граница появится на карте автоматически. Можно комбинировать несколько элементов Викиданных через запятую: boundary=Q662985,Q378120,Q1734030.
Если контур есть в OpenStreetMap, а в Викиданных его ещё нет, достаточно добавить в карточку идентификатор OpenStreetMap Relation identifier и указать номер объекта (relation) на OpenStreetMap. Этот номер определяется следующим образом:
- Открываем OpenStreetMap
- Находим нужный участок карты, используя достаточное увеличение (масштаб 1 км или крупнее)
- Выбираем значок ? (query features) в правой панели и щёлкаем в любое место внутри нужного нам района/региона
- В левой панели откроется длинный список объектов рядом с нашей точкой. Нам нужен конец этого списка, Enclosing Features
- Из Enclosing Features выбираем нужную и щёлкаем на неё, в левой панели открывается информация об этом объекте. Нам нужен номер в заголовке, сразу после названия — этот номер и вставляем в Викиданные как P402.
- Иногда удаётся найти нужный контур прямо по имени, используя поисковую строку OpenStreetMap, но это работает не всегда
Если контур есть в OpenStreetMap, но перенести его в Викиданные невозможно (например, подходящего элемента нет и не будет), можно действовать следующим образом:
- Определяем номер (relation), как объяснено выше
- Считываем контур при помощи polygons.openstreetmap.fr, выбираем формат GeoJSON. Если речь идёт об очень сложном контуре с тысячами точек, не пренебрегаем опцией Generate simplified polygon, поскольку большое количество точек шаблоны Викигида не переварят
- Получаем набор точек и немного шелухи в начале
- Находим один из контуров, уже загруженных в Викигид: например, этот
- Сохраняем его под именем Template:Boundary/pagename, где pagename — название той страницы, для которой мы хотим создать контур
- Заменяем имеющиеся в шаблоне координаты нашим GeoJSON, т.е. копируем кусок типа [ [X1,Y1], [X2,Y2], [X3,Y3],... ], изменяем описание в начале
- После того, как шаблон Template:Boundary/pagename сохранён, границу на карте своей страницы (страницы с именем pagename) он создаст автоматически. Для использования той же границы на карте регионов достаточно указать region1boundary=Template:pagename
Если контура на OpenStreetMap нет, остаётся нарисовать его вручную. Процедура размещения контура в Викигиде аналогична предыдущей, т.е. нужно создать шаблон Template:Boundary/pagename и поместить туда набор координат в формате GeoJSON. Для рисования очень удобен сайт geojson.io, который сразу выдаёт контур в нужном формате.
Статические карты
правитьРисование статических карт — долгий и трудоёмкий процесс. Общие принципы:
- Основа карты делается векторной в формате *.svg. Для использования в Викигиде экспортируется файл в png-формате
- Названия объектов помещаются в отдельный слой. Один и тот же svg-файл содержит слои с названиями на разных языках. Скрыв один слой и открыв другой, можно создать png-файлы с картами на разных языках
- Для перевода существующей карты на русский язык не создавайте новый svg-файл, а берите уже имеющийся и добавляйте в него слой с русскими названиями. Не забудьте загрузить дополненный svg-файл на Викисклад
- Статические карты Wikivoyage размещаются в системе категорий Travel maps
См. также
править- Extension:Kartographer — описание окружений mapframe и maplink, которые используются для создания карт
- Wikivoyage:Википроект:Картография-Русская локализация — перевод статических карт на русский язык
- Архив проекта — 2012 год и ранее