Материал из Wikivoyage


Википроект Картография создан для организации и стандартизации карт, которые используются в 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

См. также[править]