API для рисования маршрутов

Электронные карты, GPS-навигация, проект "Навигатор"
Ответить
  • Автор
  • Сообщение
Сообщения: 493
Зарегистрирован: 2011-июл-22 12:51
Байк: Saucony Kinvara
Реальное имя: Дмитрий
Стиль катания: бегом
Откуда: Самара

API для рисования маршрутов

Сообщение minaev » 2020-июн-03 13:59

Дано: полилайны (массивы координат)
Требуется: получить тайлы (лучше бы OSM) с нарисованными маршрутами, предпочтительно в PNG.

Сдается мне, что должен быть где-то открытый API для таких вещей. Вам не попадался?
_________________
прочитал...

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

API для рисования маршрутов

Сообщение JackOfShadows » 2020-июн-04 17:41

Готового я не знаю. Попробовать сохранять канвас в файл (посмотреть html2canvas). Если получится, то Google Maps API + показ gpx + слой OSM cycle map, как сделано у нас в "Навигаторе". Перебрать все точки - определить координаты углов видимой области. Зумить в нужный масштаб, скроллить, сохранять. Склеить получившиеся файлы (это тоже предварительно опробовать, они наверняка будут с перекрытиями - клеить как панораму) - либо попробовать transform a LatLng into a pixel coordinate. Нарезать результат на нужные тайлы. Выложить код на гитхаб.

Сообщения: 493
Зарегистрирован: 2011-июл-22 12:51
Байк: Saucony Kinvara
Реальное имя: Дмитрий
Стиль катания: бегом
Откуда: Самара

API для рисования маршрутов

Сообщение minaev » 2020-июн-08 13:20

Это чудовищно :) Я нашел такой сервис у MapBox: https://docs.mapbox.com/help/how-mapbox ... atic-maps/

А еще есть библиотечка: https://github.com/komoot/staticmap (правда, на питоне)

Есть еще вариант от Гугла: https://developers.google.com/maps/docu ... atic/intro
Но у них немного сомнительная бесплатность. Они берут за деньги за этот сервис, но при этом каждый месяц зачисляют тебе на счет по $200, из которых списывают оплату. Слишком велик риск вылезти за лимит, мне кажется.

Ну и еще кучка непроверенного: https://wiki.openstreetmap.org/wiki/Static_map_images
_________________
прочитал...

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

API для рисования маршрутов

Сообщение JackOfShadows » 2020-июн-08 22:53

Отпишите pls потом, как получится.

Сообщения: 493
Зарегистрирован: 2011-июл-22 12:51
Байк: Saucony Kinvara
Реальное имя: Дмитрий
Стиль катания: бегом
Откуда: Самара

API для рисования маршрутов

Сообщение minaev » 2020-июн-09 20:38

Ну, в продакшен пока не запустил, но попробовал. Берем полилайн тренировки со Стравы, например, такой:

Код: Выделить всё

cnz`Ic|}{FEy@Ky@Ck@Bg@Fe@@_@pAyCVu@Vi@XaALS\Qn@MlAKxAw@b@_@FNHDt@Yd@GLSv@c@r@SbAE`A[HKBMCiAPON@HZLfAPDvBa@^]b@BVOh@ITDbA@^URg@PQdBi@\[J[XQa@gEWoE@qAWaDBWPOEuAMIGWa@oDAg@Je@l@y@La@Bk@CsABQt@QbA_@TUD_@EgBH{@Lc@^e@^uAJIpAH|@EZKp@_@`Ba@f@a@XKHMn@SlAu@j@Q^Yf@UZGf@[HDDGZOjAe@v@k@rDmDlAw@|@Qt@Yr@g@TIt@{@z@s@PUjAsA~AsAlAsAT_@f@e@~AeAHDRTF@RCZUdAwAZm@bAgA|C}Ej@m@fA_B`AgBLMR?Zg@^_@Lm@PwA|AkD\eA@SG[u@}AaA{BgAwCe@y@GYMsCYoBEm@MgFW_DKiCc@aEQyB]wBAUFg@Tm@Pq@`@_CnAiGFq@TaADc@`@qBR{AJc@Fu@VyALoAZcCr@aEZm@fA}@hDoDXMd@L^ZrA`BBL?JWf@WlAEfBEZYv@Or@_@h@w@t@{@vAKLe@RO?i@Pa@XOP_@hAMdACp@J~@?l@BHFFJAlBeBpA_ALBNd@@VCl@YtAEdCKn@C\]jCMjA?b@CP[lAOhAKtAKh@Ej@YrAOhA@XOr@Gf@?VPx@?j@Dz@EPWn@M~@CjBKl@Ej@IlEWbB@r@GzBCb@E?EGy@gBYEmAaB]Wc@QMBs@`@a@HeFP_@AyG^_F`Aq@DQHUVmAx@k@f@u@\e@FuAU_B?_@B{@XgA[Y@]Jo@f@}@dA_@j@{CbGU^]JaA@MFQZOj@Mz@GpAUpBSpAQh@INmAnAM|@GjCGxGKrD?nBCbA?bBMnFIdBGPQP}AVm@?KJYlEAhB@jBDfAJrA?`@EHYRqBl@?zBUx@Wb@Ij@?xALzBL\LLH@GlAKDTd@@TD|CPpCDfBLpAFnAANSb@Qx@EHa@d@SHc@Bi@`@[f@Ib@Sl@OR[Kg@Gi@NaBNuAKQDUCGKE_AI]GEm@IWBk@T}@Dw@ZIJEPM`AMZOr@MNUPSAYLSBk@`@q@NSAQGKQKYGiABTAVWl@e@f@uA`@QLg@~@eAzCHHb@Cb@M\]N@ZKj@?
Пропускаем через urlencode и отправляем на mapbox, указывая свой токен доступа:

Код: Выделить всё

curl --output 1.png "https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/path-5+f44-0.5(cnz%60Ic%7C%7D%7BFEy%40Ky%40Ck%40Bg%40Fe%40%40_%40pAyCVu%40Vi%40XaALS%5CQn%40MlAKxAw%40b%40_%40FNHDt%40Yd%40GLSv%40c%40r%40SbAE%60A%5BHKBMCiAPON%40HZLfAPDvBa%40%5E%5Db%40BVOh%40ITDbA%40%5EURg%40PQdBi%40%5C%5BJ%5BXQa%40gEWoE%40qAWaDBWPOEuAMIGWa%40oDAg%40Je%40l%40y%40La%40Bk%40CsABQt%40QbA_%40TUD_%40EgBH%7B%40Lc%40%5Ee%40%5EuAJIpAH%7C%40EZKp%40_%40%60Ba%40f%40a%40XKHMn%40SlAu%40j%40Q%5EYf%40UZGf%40%5BHDDGZOjAe%40v%40k%40rDmDlAw%40%7C%40Qt%40Yr%40g%40TIt%40%7B%40z%40s%40PUjAsA~AsAlAsAT_%40f%40e%40~AeAHDRTF%40RCZUdAwAZm%40bAgA%7CC%7DEj%40m%40fA_B%60AgBLMR%3FZg%40%5E_%40Lm%40PwA%7CAkD%5CeA%40SG%5Bu%40%7DAaA%7BBgAwCe%40y%40GYMsCYoBEm%40MgFW_DKiCc%40aEQyB%5DwBAUFg%40Tm%40Pq%40%60%40_CnAiGFq%40TaADc%40%60%40qBR%7BAJc%40Fu%40VyALoAZcCr%40aEZm%40fA%7D%40hDoDXMd%40L%5EZrA%60BBL%3FJWf%40WlAEfBEZYv%40Or%40_%40h%40w%40t%40%7B%40vAKLe%40RO%3Fi%40Pa%40XOP_%40hAMdACp%40J~%40%3Fl%40BHFFJAlBeBpA_ALBNd%40%40VCl%40YtAEdCKn%40C%5C%5DjCMjA%3Fb%40CP%5BlAOhAKtAKh%40Ej%40YrAOhA%40XOr%40Gf%40%3FVPx%40%3Fj%40Dz%40EPWn%40M~%40CjBKl%40Ej%40IlEWbB%40r%40GzBCb%40E%3FEGy%40gBYEmAaB%5DWc%40QMBs%40%60%40a%40HeFP_%40AyG%5E_F%60Aq%40DQHUVmAx%40k%40f%40u%40%5Ce%40FuAU_B%3F_%40B%7B%40XgA%5BY%40%5DJo%40f%40%7D%40dA_%40j%40%7BCbGU%5E%5DJaA%40MFQZOj%40Mz%40GpAUpBSpAQh%40INmAnAM%7C%40GjCGxGKrD%3FnBCbA%3FbBMnFIdBGPQP%7DAVm%40%3FKJYlEAhB%40jBDfAJrA%3F%60%40EHYRqBl%40%3FzBUx%40Wb%40Ij%40%3FxALzBL%5CLLH%40GlAKDTd%40%40TD%7CCPpCDfBLpAFnAANSb%40Qx%40EHa%40d%40SHc%40Bi%40%60%40%5Bf%40Ib%40Sl%40OR%5BKg%40Gi%40NaBNuAKQDUCGKE_AI%5DGEm%40IWBk%40T%7D%40Dw%40ZIJEPM%60AMZOr%40MNUPSAYLSBk%40%60%40q%40NSAQGKQKYGiABTAVWl%40e%40f%40uA%60%40QLg%40~%40eAzCHHb%40Cb%40M%5C%5DN%40ZKj%40%3F)/auto/500x300?access_token=pk.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Получается вот такая картинка:

Изображение
_________________
прочитал...

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

API для рисования маршрутов

Сообщение JackOfShadows » 2020-июн-10 07:26

Красиво. Но не более 1280х1280, и 100 изображений бесплатно?

Сообщения: 493
Зарегистрирован: 2011-июл-22 12:51
Байк: Saucony Kinvara
Реальное имя: Дмитрий
Стиль катания: бегом
Откуда: Самара

API для рисования маршрутов

Сообщение minaev » 2020-июн-10 10:44

На разрешение я даже не обращал внимания, а так вроде бы до 50 тысяч запросов в месяц бесплатно: https://www.mapbox.com/pricing/, в разделе Static Images API.
Я так понимаю, что это именно для превьюшек. Если нужна более крупная картинка, то лучше уж просто интерактивную карту вставлять.
_________________
прочитал...

Аватара пользователя
Сообщения: 12258
Зарегистрирован: 2004-апр-08 10:04
Откуда: Самара

API для рисования маршрутов

Сообщение JackOfShadows » 2020-июн-10 17:45

В постановке задачи есть слово "тайлы" - я понял, что их должно быть много, трек в пару сотен километров на 1280х1280 - примерно как по "Беломору" лететь. Если достаточно уместить его в экран - то и Ваш вариант хорош, и наш - у нас всё давно уже написано и работает c OSM/импортами треков, только html2canvas прикрутить.

Если это не для печати/заливки в приборы приборов - я бы вообще не заморачивался и воткнул интерактивную, оно подружественней будет. Хотя задачи разные бывают.

Сообщения: 493
Зарегистрирован: 2011-июл-22 12:51
Байк: Saucony Kinvara
Реальное имя: Дмитрий
Стиль катания: бегом
Откуда: Самара

API для рисования маршрутов

Сообщение minaev » 2021-янв-21 00:32

По случаю нового года наконец-то дошли руки прикрутить карты к сайту :)
Получилось как-то так (оригинал на https://aerobia.net/feed3.html)


Изображение
_________________
прочитал...
Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей