0. Ditron 110 12.02.19 07:46 Сейчас в теме

Строим маршруты на картах в 1С с помощью OpenStreetMap, OSRM и Leaflet

Краткая статья о том как вывести на карту (в 1С) маршруты с помощью OpenStreetMap, OSRM и Leaflet. По данной системе очень мало примеров, но так как OpenStreetMap является бесплатным сервисом и не требует никаких ключей и регистраций, и является довольно мощным механизмом, решил написать небольшую статью "как это сделать?".
В первую очередь скажу, все намного проще, если вы используете последнюю версию платформы (8.3.14), где есть поддержка практически всех браузеров (IE 11, EDGE, Mozilla), но что делать если у нас не самая свежая платформа, где поддержка только IE 9?

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. mi1man 322 12.02.19 11:51 Сейчас в теме
".. З.Ы. в построении маршрута обнаружился некий недочет - изгибы дорог и повороты (некоторые) почему то не учитываются, надо разбираться..."

используйте rs_overview = "full"
2. Ditron 110 12.02.19 12:42 Сейчас в теме
3. Ditron 110 12.02.19 14:27 Сейчас в теме
(1) нет, не работает, не так надо, а вот так: &geometries=geojson (в запросе) тогда появится структура geometry а в ней массив с более точными координатами... обновлю статью и обработку... спасибо за пинок ))
4. pahalovo 13.02.19 09:11 Сейчас в теме
(3) А полученный geoJson от OSRM можно отправить в leaflet.js L.geoJSON(data). Очень удобно.
5. Ditron 110 13.02.19 11:19 Сейчас в теме
(4) да можно и так, там вообще можно много чего, да только некогда разбираться ))
8. qwed557 30 17.02.19 12:47 Сейчас в теме
Координаты получил, в списке адресов 2 точки, при нажатии построить маршрут выходит сообщение
Ошибка при попытке маршутизации по OSR, адрес:
Too Many Requests
9. Ditron 110 17.02.19 21:57 Сейчас в теме
(8)А перевести на русский не судьба? Сервис бесплатный, соответственно нагрузка большая, переводится как "Слишком много запросов", надеюсь дальше объяснять не надо? П.С. это я вывел как ошибку, а вообще это ответ сервера сервиса...
10. qwed557 30 18.02.19 15:29 Сейчас в теме
(9)да нах такой сервис, в течении дня ни разу не построил маршрут, сколько не бы не тестил. и что то он бесплатный, пользы от него 0.
11. Ditron 110 18.02.19 15:47 Сейчас в теме
(10)ну извините, не мой сервис, хотя у меня у двух клиентов подсистема сделана маршрутизации, не жалуются, бывает конечно но не напрягает...
12. Ditron 110 18.02.19 15:50 Сейчас в теме
(10)там на routing machine есть несколько вариантов получения точек для построения полилинии, попробуйте получать в виде таблицы http://project-osrm.org/docs/v5.7.0/api/?language=cURL#table-service
13. Ditron 110 18.02.19 15:52 Сейчас в теме
14. Power_0N 15 09.09.19 09:44 Сейчас в теме
Можно вопрос? А что значит "В примере кода заменяются ссылки на неверные"?
Никак не могу понять правильно я интерпретирую фразу или нет: я должен заменить в примере неверные ссылки на верные? А что считается верным?
15. Ditron 110 09.09.19 11:50 Сейчас в теме
(14)Когда писал статью, и вставки кода делал, ИС почему-то заменял ссылки в коде на какую-то хрень)) В тексте (после кода) я указал то, что должно быть
16. Ditron 110 09.09.19 11:51 Сейчас в теме
(14)А лучше посмотреть файл макета в примере - обработке )
17. sasha777666 298 17.10.19 08:55 Сейчас в теме
Эта строчка "map.fitBounds(polyline.getBounds());" масштабирует карту так чтобы вся линия была в области видимости, как её изменить если у меня несколько линий (например 3: polyline1, polyline2, polyline3) ?
18. Ditron 110 17.10.19 12:01 Сейчас в теме
(17) у меня, все маршруты связаны между собой (т.е. последовательны), соответственно, для карты маршрут один получается, ставлю только маркеры в точках отправления (прибытия). По сути (в вашем случае), я так понимаю, нужно получить баунды каждого маршрута (линии) и из них сделать один баунд по мин и макс, а вот как конкретно, нужно читать АПИ, до этого дело у меня не дошло ))
20. sasha777666 298 17.10.19 13:52 Сейчас в теме
(19) Спасибо за ссылку, всё получилось. Оставлю тут мож кому пригодится:
координаты всех точек которые должны попасть в область видимости добавлял в переменную "КодТочекМасштабирования" в виде "[55.790831000000, 37.704207000000],[56.790831000000, 38.704207000000],[59.790831000000, 39.704207000000]" , в конце строчка "map.fitBounds(polyline.getBounds());" была заменена на "map.fitBounds([" + КодТочекМасштабирования + "]);"
21. Ditron 110 17.10.19 17:07 Сейчас в теме
22. palamars 08.11.19 18:32 Сейчас в теме
А как построить маршрут, где точка финиша совпадает с точкой старта? Ну, типичная задача объехать все магазины и вернуться...
23. Ditron 110 08.11.19 18:57 Сейчас в теме
Что мешает указать последней точкой равной первой ))
24. lk78 294 22.12.19 18:58 Сейчас в теме
а расстояние по маршруту как посчитать?
26. Ditron 110 23.12.19 12:10 Сейчас в теме
(24)в пакете маршрута (ответ от раут машины) есть расстояния) т.е. в методе получения маршрута посмотрите отладкой структуру ответа
25. lk78 294 22.12.19 19:24 Сейчас в теме
есть возможность вывести линейку на карту? для измерения расстояние между точками
27. Ditron 110 23.12.19 12:11 Сейчас в теме
28. zenechka 466 26.12.19 13:36 Сейчас в теме
На одном компьютере не отображается карта: ( https://pastenow.ru/b29f76957f8356fceaabfc02a877aee4 )
При этом на другом все ок. Не сталкивались, какие настройки / права на это могут влиять? В какую сторону копать?
29. Ditron 110 26.12.19 13:52 Сейчас в теме
(28)проблема скорее всего в интернет соединении
30. zenechka 466 26.12.19 14:09 Сейчас в теме
(29) а куда должен быть доступ?
В целом на этом компьютере есть интернет подключение (наример, на сайт http://1c.ru/ в браузере можно зайти), но с ограничениями.
К каким ресурсам по каким протоколам и через какие порты нужен доступ для данного функционала, вот это бы понять...
31. Ditron 110 26.12.19 16:22 Сейчас в теме
(30)ну как минимум на ресурсы используемые, смотрите в код и в макет HTML
32. Ditron 110 26.12.19 16:23 Сейчас в теме
(30)в описании к публикации все есть, смотрите внимательно...
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант по 1С:Документооборот
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:Бухгалтерии
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист по 1С:ЗУП
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 150 000 руб.
Полный день