Утилиты для разработки маршрутов tscli

Обсуждение вопросов и решение проблем, связанных с внутриигровым редактором, а также процессом разработки самостоятельных дополнений или игровых модификаций.
Ответить
kkorsakoff
Бывалый
Бывалый
Сообщения: 46
Зарегистрирован: 18 апр 2016
Откуда: Санкт-Петербург
Репутация: 137
Контактная информация:

Утилиты для разработки маршрутов tscli

Сообщение kkorsakoff »

Сегодня решился начать выпускать свой набор утилит для RS.

Утилиты в основном для работы над маршрутом. Пока что добавляю описание только одной команды из набора.
edited: добавлено описание команд конвертации координат.
edited: добавлено описание команды выгрузки фотограифий из Foursquare.

Введение

Почему они есть?

В рамках разработки маршрута сталкиваешься с необходимостью автоматизировать часто выполняющиеся операции. То есть утилиты в основном под себя, но если tscli обретет популярность среди других разработчиков маршрутов, то будут добавляться команды по пожеланиям.

Установка и запуск

1. Скачать и установить Java Runtime. Идем на http://java.com и ставим инсталлятором. Если уже стоит, пропускаем шаг. Нужна версия любая 8.
2. Скачать архив с утилитами https://drive.google.com/open?id=0B5Ndo ... lpqdGFla3c
3. Распаковать в любую удобную папку. Например в D:\tstools\
4. Перейти в "bin" внутри распакованной папки, например D:\tstools\tscli-1.0\bin
5. Открыть командную строку. Меню "Файл - Открыть" командную строку на Windows 10.
6. Запустить нужную утилиту набирая tscli [group] [command] [parameters].

Команды сгруппированы в наборы, например набор для работы с маршрутами имеет имя route.
Для работы с Panoramio - panoramio и так далее. Каждая команда имеет свой набор параметров.
В будущих версиях появится справка по командам.

GUI версии утилит нет и пока не планируется. CLI же :roll:

Команды

panoramio getphotos - скачать фотографии около заданной точки по широте-долготе в указанном радиусе

Команда ищет фотографии на сервисе Panoramio.com в определенном радиусе некоторой заданной точки и скачивает в указанный каталог.
Параметры:
    --source-point=lon:lat - географические координаты точки
    --source-radius=radius - радиус в метрах
    --dest-dir= - каталог, куда будут сохранены файлы с изображениями
Пример:

tscli panoramio getphotos --source-point=30.374559:59.905475 --source-radius 100 --dest-dir navalochnaya

Пример скачает фотографии относительно точки 30.374559:59.905475  в радиусе 100 метров в папку navalochnaya относительно текущей папки.
Результатом отработки будет такой набор файлов в каталоге navalochnaya.
Изображение
Можно садиться и делать здание:)

Указание точки из Google Earth.

Для удобства поддержано указание точки "центра" из Google Earth, а не из командной строки.

Как это работает: выделяем некоторый "placemark" в Google Earth. Выбираем контекстное меню - скопировать. Запускаем команду где вместо координат будет указано специальное значение --source-point=cb. Команда возьмет из буфера обмена координаты выделенной точки.

Пример:

tscli panoramio getphotos --source-point=cb --source-radius=100 --dest-dir dir1

Если в нужном месте нет готового плейсмарка, следует создать свой через Add Placemark и разместить в нужном месте.

Метафайл

Помимо фотографий в папке создается файл с метаданными о скачанных фотографиям (даже два файла, CSV и JSON), в файле лежит информация об авторе, тайтл фотографии, ее координаты и прочее. 

Метафайл созданный после запуска примера выше.
Изображение

Особенности и траблшутинг

1. Указывать координаты надо как долгота двоеточие широта.
2. Разделитель дробной части - точка. Строго.
3. Программа скачивает не более 100 фотографий. Если нужно больше - уменьшайте радиус
4. Радиус это не радиус, а скорее половина длины стороны квадрата, в который вписана окружность с указанным радиусом:) Грубо говоря квадрат, где от центра +/- указанное число метров.
5. Не сохраняются изображения, которые в Google Earth отмечены как безымянные. Panoramio API не отдает их почему-то. Написал разработчикам, жду ответа.
6. Даунлоадер работает в 5 потоков
7. Скачиваются фотографии только оригинального формата (original в API), другие форматы пока не поддержаны.

coords convert2ts- сконвертировать географические координаты в игровые

Команда конвертирует пары географических координат долгота-широта в игровые координаты: идентификатор тайла + координаты внутри тайла.
Параметры:
    --source=lon:lat - географические координаты
    --route - GUID маршрута, в систему координат которого сконвертировать координаты

Пример:

tscli coords convert2ts --source=30.374559:59.905475 --route=26249b47-3309-41a7-917a-41fbeabcb761

вернет +000000:-000002;19.3656:236.2006, это означает что ваша точка находится на тайле +000000:-000002 и внутри тайла по оффсету 19м, 236м.

Система координат TS устроена так: ось X - запад-->восток; ось Z - юг-->север. То есть тайл +0:-2 это 2 тайла на юг от ориджина. Внутри тайла оффсет считается от югозападного угла.

Особенности и траблшутинг
1. Можно конвертировать несколько точек за раз передавая --source=lon:lat сколько угодно раз. Каждая сконвертированная точка будет возвращена на отдельной строке вывода команды.
2. Команда ищет путь к игре в реестре. Если на вашей системе с этим возникают проблемы, передавайте путь руками в параметре --rs-directory=полный путь к папке Railworks
3. Поддержаны только маршруты распакованные как обычные папки, архивы пока не поддержаны

coords convert2geo - сконвертировать игровые координаты в географические

Команда конвертирует четверки игровых координат (идентификатор тайла по X, Z + офсет внутри тайла x,z) в географические долгота-широта
Параметры:
    --source=tileX:tileZ;x;z - игровые координаты
    --route - GUID маршрута, в систему координат которого сконвертировать координаты

Пример:

tscli coords convert2geo --source=-000001:-000002;19.3656:236.2006 --route=26249b47-3309-41a7-917a-41fbeabcb761

вернет 30.34599:59.91211, это и есть географические координаты точки

Особенности и траблшутинг
1. Можно конвертировать несколько точек за раз передавая --source сколько угодно раз. Каждая сконвертированная точка будет возвращена на отдельной строке вывода команды.
2. Команда ищет путь к игре в реестре. Если на вашей системе с этим возникают проблемы, передавайте путь руками в параметре --rs-directory=полный путь к папке Railworks
3. Поддержаны только маршруты распакованные как обычные папки, архивы пока не поддержаны
4. В TS используется самая что на есть обычная UTM проекция. Географические координаты центра записаны в RouteProperties.xml, равно как и офсет UTM. Размер тайла фиксирован - 1024 метра, поэтому несложными преобразованиями можно конвертировать координаты из одного представления в другое.


foursquare getphotos - скачать фотографии около заданной точки по широте-долготе в указанном радиусе

Команда ищет фотографии на сервисе Foursquare в определенном радиусе некоторой заданной точки и скачивает в указанный каталог.
Поскольку человеческая тяга к тщеславию неискоренима, фотографий с чекинов гораздо больше нежели фотографий с Panoramio =) Но и фотографии качества соответствующего, хотя кадры часто более интересные и жизненные так сказать.

Параметры:
    --source-point=lon:lat - географические координаты точки
    --source-radius=radius - радиус в метрах
    --dest-dir= - каталог, куда будут сохранены файлы с изображениями
Пример:

tscli foursquare getphotos --source-point=30.374559:59.905475 --source-radius 100 --dest-dir navalochnaya

Пример скачает фотографии относительно точки 30.374559:59.905475  в радиусе 100 метров в папку navalochnaya относительно текущей папки.

Метафайл

Помимо фотографий в папке создается файл с метаданными о скачанных фотографиям (даже два файла, CSV и JSON), в файле лежит информация об авторе, тайтл фотографии, ее координаты и прочее. 

Особенности и траблшутинг

1. Команда работает полностью аналогично panoramio getphotos
2. Программа скачивает все фотографии в радиусе, ограничений не увидел
3. Радиус это радиус=)
4. Скачиваются фотографии только оригинального формата (original в API), другие форматы пока не поддержаны.

Техподдержка и обратная связь

https://telegram.me/kkorsakoff
http://route78.blogspot.ru

Ботаника

Структура папок tscli
\bin - исполняемые файлы утилиты
\bin\tscli.bat - исполняемый файл под Windows
\bin\tscli - исполняемый файл под Linux (да, работать будет, но не знаю кому это пригодится)
\lib\ - используемые сторонние библиотеки и код команд
\plugins\ - сюда можно складывать реализации своих команд (пока не буду об этом)
Последний раз редактировалось kkorsakoff 28 авг 2016, 15:01, всего редактировалось 1 раз.
kkorsakoff
Бывалый
Бывалый
Сообщения: 46
Зарегистрирован: 18 апр 2016
Откуда: Санкт-Петербург
Репутация: 137
Контактная информация:

Re: Утилиты для разработки маршрутов tscli

Сообщение kkorsakoff »

Добавил команду отрисовки рельсовой сети маршрута на Google Earth. Комментировать особо нечего.

Разве что стандартные маршруты конечно халтура с точки зрения правдоподобности сети:)

Команда по умолчанию копирует сеть в буфер, так что после отработки можно в GE нажать Ctrl+V и в меню меток слева добавится новая папка с плейсмарками сети. Так же команда может экспортировать сеть в kml-файл. Каждый риббон экспортируется как отдельный плейсмарк, можно кликнуть. Кривые аппроксимируются с шагом 1 метр. Переходные кривые не отображаются, не поддержал пока - не надо было. Маршруты в ap-архивах традиционно еще не работают.

rails exportnetwork - Экспортировать рельсовую сеть в Google Earth или в KML-файл
Параметры:

--route идентификатор маршрута
--destination - имя файла для сохранения KML. Если не указан, то сеть копируется в буфер обмена (на самом деле в буфер кладется точно такой же KML:)).

Изображение

Что-то из стандартного...

Изображение
Ответить