RU:JOSM/Plugins/CustomizePublicTransportStop

From OpenStreetMap Wiki
Jump to navigation Jump to search

Общие сведения

Модуль настройки остановок для JOSM предназначен для автоматической настройки остановок общественного транспорта в соответствии с версиями 1 и 2 стандарта обозначения общественного транспорта в базе данных OSM. При разработке модуля использовались рекомендации по настройке остановок общественного транспорта и собственный опыт разработчика.

Основные функции модуля

В качестве исходных данных модуль использует положение Платформы для ожидания общественного транспорта (далее просто “Платформа”), которая может быть обозначена как точка или как линия с тегом public_transport=platform.

Модуль выполняет

  • Настройку Платформы в соответствии с требованиями стандартов;
  • Создание (если не существует) и настройку в соответствии с требованиями стандартов точки «Место остановки транспорта»;
  • Создание (если не существует) и настройку отношения «Зона остановки», включающего выбранную Платформу.

Ввод параметров настройки осуществляется визуально с помощью диалогового окна.

Настройка Платформы для ожидания общественного транспорта

Настройка Платформы для ожидания общественного транспорта зависит от типа транспорта и типа кодирующего платформу объекта (точка или линия). Для всех видов транспорта могут быть указаны:

  • Название;
  • Название на английском языке;
  • Название транспортной сети;
  • Название обслуживающей остановку организации;
  • Уровень транспортной сети (городской, пригородный, междугородний, дальнего следования, высокоскоростной);
  • Виды останавливающегося транспорта;
  • Наличие скамеек, навеса и помещения;
  • Атрибут кодирования Платформы полигоном.

Для автотранспорта и троллейбусов дополнительно устанавливаются

  • Если Платформа кодируется точкой – атрибут highway=bus_stop,
  • Если Платформа кодируется линией – атрибут public_transport=platform, а в центр линии ставится точка, которой присваивается атрибут highway=bus_stop.

Для железнодорожного транспорта и трамваев в случае, если Платформа кодируется линией, ей присваивается атрибут railway=platform.

Настройка выполняется для всех Платформ, включённых в отношение «Зона остановки», в которое входит выбранная Платформа. Присвоение атрибута highway=bus_stop выполняется только для выбранной Платформы в отношении.

Настройка точек «Место остановки транспорта»

Точки «Место остановки транспорта» могут создаваться автоматически. Если отношение «Зона остановки», в которое входит выбранная Платформа, не содержит точку «Место остановки транспорта» или выбранная Платформа не включена ни в одно отношение «Зона остановки», то выполняется следующая проверка:

  • Если Платформа предназначена для ожидания железнодорожного транспорта, то рассчитывается ближайшее к платформе место на ближайших железнодорожных путях, в этом месте создаётся включённая в линию железной дороги точка и ей присваивается атрибут «Место остановки транспорта» (тег public_transport=stop_position);
  • Если Платформа предназначена для ожидания трамваев, то рассчитывается ближайшая к платформе точка на ближайших трамвайных путях, для нее создаётся включённый в линию железной дороги узел и ему присваивается атрибут «Место остановки транспорта» (тег public_transport=stop_position);
  • Если Платформа предназначена для ожидания автомобильного транспорта и троллейбусов, то рассчитывается ближайшая к платформе точка на ближайшей автомобильной дороге (включая служебные проезды), для нее создаётся включённый в линию автомобильной дороги узел и ему присваивается атрибут «Место остановки транспорта» (тег public_transport=stop_position).
  • Если Платформа кодируется линией, то ищется точка, ближайшая к середине, образованной линией фигуры.

Созданная точка «Место остановки транспорта» включается в отношение «Зона остановки» с ролью «stop».

Для каждой точки «Место остановки транспорта» в отношении «Зона остановки», в которую входит выбранная Платформа могут быть настроены:

  • Название;
  • Название на английском языке;
  • Название транспортной сети;
  • Название обслуживающей остановку организации;
  • Уровень транспортной сети (городской, пригородный, междугородний, дальнего следования, высокоскоростной);
  • Виды останавливающегося транспорта.

Для первой точки «Место остановки транспорта» в отношении «Зона остановки», в которое включена выбранная платформа, дополнительно устанавливаются:

  • Если точка «Место остановки транспорта» для железнодорожной станции – тег railway=station;
  • Если точка «Место остановки транспорта» для железнодорожной платформы – тег railway=halt;
  • Если точка «Место остановки транспорта» для трамвайной остановки – тег railway=tram_stop.

Настройка зоны остановки

В качестве зоны остановки берётся первое отношение «Зона остановки», в которое включена выбранная Платформа. Если Платформа не включена ни в одно отношение «Зона остановки», то создаются точка «Место остановки транспорта» и новое отношение «Зона остановки», в которое включаются выбранная Платформа и созданная точка «Место остановки транспорта». Если точку «Место остановки транспорта» создать не удалось, то и отношение «Зона остановки» не создаётся.

Для отношения «Зона остановки», в которую входит выбранная Платформа могут быть настроены:

  • Название;
  • Название на английском языке;
  • Название транспортной сети;
  • Название обслуживающей остановку организации;
  • Уровень транспортной сети (городской, пригородный, междугородний, дальнего следования, высокоскоростной).

Установка модуля

Модуль представляет из себя архив классов Java и называется CustomizePublicTransportStop.jar.

Чтобы установить модуль на своем компьютере

  • Запустите JOSM;
  • Выберите в меню «Правка» пункт «Настройки»;
  • В диалоговом окне «Настройки» в левой части выберите закладку «Модули»;
  • Найдите модуль CustomizePublicTransportStop и поставьте галочку слева от него;
  • Нажмите кнопку «ОК»;
  • Перезагрузите JOSM;
  • Убедитесь, что в меню «Инструменты» появился пункт «Customize stop».

Также можно скачать модуль и поместить его в каталог модулей JOSM. Для этого

  • Скачайте файл модуля на свой компьютер с сайта разработки по адресу https://github.com/bwr57/CustomizePublicTransportStop/releases;
  • Скопируйте файл модуля в папку модулей JOSM. В последних версиях Windows это <системный диск>:\Users\<Логин пользователя>\AppData\Roaming\JOSM\Plugins. Например, C:\Users\usr1\AppData\Roaming\JOSM\Plugins;

Использование модуля

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

  1. Выделите платформу для ожидания общественного транспорта или создайте новую и выделите её. В качестве платформы может быть выбрана как точка, так и линия;
  2. Выберите в меню «Инструменты» пункт «Customize stop»;
  3. В диалоговом окне «Stop customizing» введите
    • Название;
    • Название на английском языке;
    • Название транспортной сети;
    • Название обслуживающей остановку организации;
    • Уровень транспортной сети (городской, пригородный, междугородний, дальнего следования, высокоскоростной);
    • Виды останавливающегося транспорта;
    • Наличие скамеек, навеса и помещения;
    • Атрибут кодирования платформы полигоном.
    • Обязательным является только указание типа транспорта;
  4. Нажмите кнопку «Сохранить».

Пример создания и настройки остановки показан на следующем видео

Модуль также позволяет повторно настроить остановки, которые уже включены в отношение «Зона остановки». Для этого достаточно выделить включенную в отношение «Зона остановки» Платформу и выполнить команду «Customize stop» в меню «Инструменты». После редактирования свойств остановки и нажатия на кнопку "Сохранить" введенные значения свойств остановки присваиваются ВСЕМ входящим в отношение Платформам и местам остановки транспорта, а также самому отношению.

Исходный код

Исходный код может быть найден в каталоге CustomizePublicTransportStop на GitHub

Авторское право и лицензирование

Авторские права на модуль настройки остановок принадлежат автору – Родиону Щербакову.

Модуль распространяется бесплатно под лицензией GPL.

Модуль распространяется «как есть». Автор не несет ответственности за прямой или косвенный ущерб, причиненный работой модуля или невозможностью его использования.