RU:Hikingbook.pl/How
Исходная статья: Hikingbook.pl/How. Вы можете закончить перевод.
Если вы знаете английский, то можете помочь нам, переведя часть оригинальной статьи. Общие сведения о переводе статей на русский язык можно найти здесь.
Процесс в целом
Этапы работы программы:
- чтение файла osm и поиск отношения
- сбор всей необходимой информации о точках и линиях
- создание уменьшенного файла osm (для ускорения процесса и уменьшения размера результата)
- попытка сбора всех участников отношения в один путь
- поиск POI вдоль этого пути
- создание списка направлений
- создание детальных карт и учёт границ области (по сути, для этого и создавался временный уменьшенный файл osm)
- создание обзорной карты
- создание титульной страницы
- создание списка POI
- сведение всех созданных файлов в один
- удаление временных файлов
Создание временных файлов
Для создания временных файлов используется Osmosis. --bounding-box используется с параметрами completeWays=yes и completeRelations=yes.
Поиск POI
Поиск POI производится по POI файлу. Выбираются точки, ближайшие к маршруту. POI вдоль маршрута будут отображены, если их расстояние от пути не превышает указанное в файле POI.
Список направлений
Не всем точкам суждено попасть в список направлений. Пункты списка называются шагами. Точка становится шагом, если она:
- является началом или окончанием маршрута
- имеет информацию о высоте
- имеет POI поблизости
- стоит на перекрёстке
Чтобы уменьшить количество шагов используйте, например, -lesssteps=10. В этом случае, перекрёстки, попадающие в промежуток 10 градусов, не попадут в список шагов.
Для определения перекрёстка, программа парсит все линии и находит количество сегментов линии, касающихся данной точки. Если количество больше 2, значит здесь перекрёсток.
Список POI
Список POI (опциональный) содержит каждый POI, отображаемый на карте, с номером страницы и координатами по сетке. Отображаются вхождения POI на каждой странице, где они присутствуют. Список может разбиваться на 1-3 колонки.
Данные о высоте
Каждая точка проверяется на наличие данных о высоте (ele=1000 к примеру). Если найдётся более двух точек с такими данными, в таблице направлений появится столбец elevation, и в документ добавится информация о рельефе.
Дополнительно, линии в файле osm просматриваются на предмет принадлежности контурам по данным srtm. Если такие данные найдутся, программа будет искать пересечения контурных линий с маршрутом. Если найдены такие пересечения, данные будут добавлены в информацию о рельефе. However, it will not be added to the description because that is node based. Intersections can occur at any point in the route.