Участник:Svetlov Artem/Процесс создания простых карт для статьей про железнодорожные линии

Процесс создания простых карт для статьей про железнодорожные линии

Обычно в статьях про железнодорожные линии мелькает десяток названий станций, во взаимном расположении которых без карты не разберёшься. Можно вставить кусок карты отреднренной из OSM, однако на ней часто непонятно, про какую именно линию идёт речь, если на карте несколько линий. Можно вставлять в статью две карты одной местности: детальную, и простую.

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

В викиданных например у линии могут быть два отдельных свойства: карта пути (P15) и подробная карта (P1621). Здесь описан процесс создания простой карты, что бы на неё взглянул - и сразу же понял взаимное расположение основных станций и городов.

План:

  1. Можно вставить шаблон ПозКарта. Это просто, может быть его будет достаточно, и из него потом можно будет сделать карту.
  2. Код шаблона скриптом конвертирутся в GeoJSON с точками станций.
  3. GeoJSON так же можно сделать сразу в QGIS, используя координаты с OpenStreetMap через overpass-api, но это сложно обьяснить.
  4. с OpenStreetMap через overpass-turbo.eu выкачивается геометрия всех железных дорог, при необходимости так же трассы УЖД и разобранных линий.
  5. Все эти слои загружаются в Tilemill под Ubuntu (под Windows у него бинарники старые, там сломан экспорт в svg).
  6. Настраиваются стили. В англовики есть соглашения по цветам.
  7. Рендрится карта в svg, размер подгоняется так, что бы вписывался в 400x400.


Шаблон ПозКарта

1. В статью про железнодорожную линию вставьте этот шаблон:

{{ПозКарта+ | Россия Европейская часть
| width   = 666
| caption = 
| places  =
  {{ПозКарта~ | Россия Европейская часть|lat_deg = |lon_deg = |position=right|label = }}
  {{ПозКарта~ | Россия Европейская часть|lat_deg = |lon_deg = |position=right|label = }}
  {{ПозКарта~ | Россия Европейская часть|lat_deg = |lon_deg = |position=right|label = }}
  {{ПозКарта~ | Россия Европейская часть|lat_deg = |lon_deg = |position=right|label = }}
  {{ПозКарта~ | Россия Европейская часть|lat_deg = |lon_deg = |position=right|label = }}
  {{ПозКарта~ | Россия Европейская часть|lat_deg = |lon_deg = |position=right|label = }}
  {{ПозКарта~ | Россия Европейская часть|lat_deg = |lon_deg = |position=right|label = }}
  {{ПозКарта~ | Россия Европейская часть|lat_deg = |lon_deg = |position=right|label = }}
}}
Svetlov Artem/Процесс создания простых карт для статьей про железнодорожные линии (Московская область)
Красная точка
Москва-Бутырская
Красная точка
Шереметьевская
Красная точка
Савёлово
Красная точка
Дмитров
Красная точка
Дубна
Красная точка
Орудьево
Красная точка
Икша
Красная точка
Яхрома
Красная точка
Лобня
Красная точка
Шереметьево

Координаты станций копируйте из http://osm.org, с адресной строки, это позволяют лицензии. В картографии принято, что по умолчанию надпись пишется справа от точки, а если не влезает - то слева. Укажите самые важные станции, например те, где есть ответвления. Может быть, что и с такой картой всё будет понятно, а может окажется, что линия проходит через несколько стран, и плохо влезает в карту.

Конвертация шаблона ПозКарта в GeoJSON со станциями

Скопируйте текст этого шаблона, и откройте страницу: https://trolleway.github.io/LocationMap2GeoJSON/ (репозиторий на github: https://github.com/trolleway/LocationMap2GeoJSON). Встаьте код шаблона ПозКарта+, и страница сгенерирует файл GeoJSON. Это общепринятый в 2017 году обменный формат между разными ГИСами. Его можно открывать в NextGIS Web, NextGIS QGIS, Tilemill, Mapnik - в общем, в популярнейших ГИСах с открытым кодом.

Альтернативно: делаем GeoJSON со станциями в NextGIS QGIS

  1. Получаем с overpass-api координаты всех станций в области. Если плагин не работает, то берём geojson
  2. Настраиваем параметры прилипания: ко всем слоям, 5 пикселей
  3. Делаем новый слой (сразу в Shapefile). Атрибуты: label: String(255), position: String(255)
  4. Добавляем в слой точки - и их координаты будут браться сразу со станций из OSM - так быстрее.

Рендеринг в Tilemill

  1. Используем Tilemill, в нём получается красивее всего, потому что внутри движок mapnik.
  2. Собираем Tilemill из исходников под Ubuntu. Под Windows не рендрится svg - на сайте старые бинарники.
  3. Сборка под Ubuntu по инструкции невозможна, потому что версии пакетов ушли вперёд. Бросаем это дело, и находим себе какое-нибудь более полезное занятие.
  4. Если, совершенно случайно, у вас есть машина, где tilemill был поставлен 2 года назад, то делаем новый проект с базовой картой. Добавляем туда станции, и берём линии с overpass-api.

Запросы для http://overpass-turbo.eu

/*
Railways
*/
[out:xml][timeout:50];
(
  way["railway"="rail"]["service"!~".*"]({{bbox}});
);
out meta;
>;
out meta qt;
/*
“railway = abandoned or railway = razed or railway=disused”
*/
[out:json][timeout:55];
(
  way["railway"="abandoned"]({{bbox}});
  way["railway"="razed"]({{bbox}});
  way["railway"="disused"]({{bbox}});
);

out body;
>;
out skel qt;

  1. Используем стиль: https://github.com/trolleway/map_styles/blob/master/mss/WikipediaLocation%2BRailways.mss - в нём заданы стандартные цвета.
  2. Рендрим карту в svg, размером не более 400x400, что бы на странице она отображалась в полный размер. Подгоняем для этого количество подписываемых станций, что бы они не накладывались.
400x669px слишком большая, надписей не видно
400x400 px, буквы видны
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya