Пример построения маршрута и оптимизация его с помощью Яндекс карт и api Яндекса 2.1

08.06.16

Интеграция - WEB-интеграция

Пример использования карт Яндекса и api 2.1. Построение оптимального маршрута движения курьеров. Оптимальность маршрута считается для общественного транспорта. Потом можно переключить маршрут на автомобиль.

Скачать файлы

Наименование Файл Версия Размер
Пример оптимизации маршрута с помощью Яндекс карт api 2.1.zip
.zip 12,48Kb
409
.zip 1.0 12,48Kb 409 Скачать

Задача: построить оптимальный маршрут для доставки заказов из, например, интернет магазина.

В прикреплённом архиве внешняя обработка и html файл. Они работают независимо друг от друга. Маршрут строится с использованием yandex api 2.1. Яндекс не умеет оптимизировать маршрут. Он обрабатывает полученные точки в переданном ему порядке. Для оптимизации яваскрипт рассчитывает расстояние от исходной точки до каждой точки доствки. Находит ближайшую. Делает её исходной. Повторяет расчёт для оставшихся точек. Обработанные точки помещает в итоговый массив. После того как все точки выстроены в нужном порядке Яндексу отдаётся команда на собственно построение маршрута. Результат выводится пользователю. При переключении на автомобиль повторная оптимизация маршрута не выполняется, поэтому для автомобиля маршрут может оказаться неоптимальным. Вся эта логика работает на яваскрипте. Если адрес не найден, то он исключается из списка доставки.

Обработка демонстрационная, поэтому работает в любой конфигурации, только позволяет ввести адреса доставки и показывает карту. Никаких объектов конфигурации не использует. Работает как в клиенте 1С яндекс так и в web клиенте. Тестирована в Хроме и Фирефоксе.

Осталась небольшая ошибка, которую пока решил не исправлять. Если указать два одинаковых адреса, то Яндекс сообщает об ошибке и карта не строится.

газета Суть Времени

Обновление от 03.10.2014 18:30

Исправлена ошибка при которой иногда не строился маршрут.

Информация от 08.06.2016.

На текущий момент при отображении карт Яндекса в 1С выдаётся сообщение об ошибке.Ошибка в тонком и толстом клиентах. В веб клиенте не проверял. Проверил на версии 8.3.8.1652. Маршрут при этом строится и отображается верно. Сообщение об ошибкаях можно отключить в настройках IE.

Работу под линуксом не проверял.

Ответ Яндекса на вопрос

Яндекс.Карты нельзя использовать в десктопных приложениях и закрытых системах. Только сайты.

https://yandex.ru/blog/mapsapi/28445

логистика маршрут яндекс

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15748    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17551    6    15    

13

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16360    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25741    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88582    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. anig99 2843 03.10.14 10:59 Сейчас в теме
Какие ограничения на число точек?
2. Трактор 1246 03.10.14 11:14 Сейчас в теме
Какие ограничения на число точек?

(1) anig99, не знаю. В документации об этом ничего не сказано http://api.yandex.ru/maps/jsbox/2.1/
На некоторых адресах яндекс глючит. Не строит к ним маршрут.
7. Трактор 1246 03.10.14 23:31 Сейчас в теме
(2)
На некоторых адресах яндекс глючит. Не строит к ним маршрут.

Моя ошибка была. Исправил.
Ещё исправил отображение в клиенте 1С спасибо FallenMad за ответ в теме http://forum.infostart.ru/forum26/topic117885/
Кто скачал файл до 23:51 03.10.2014 скачайте ещё раз. Если нема денег - давайте адрес пришлю файлик,
44. user829115 18.09.17 17:05 Сейчас в теме
(2)
есть ли способ как в яндекс картах проложить маршрут общественным транспортом на более 10 точек?
45. user829115 18.09.17 17:10 Сейчас в теме
есть ли способ как в яндекс картах проложить маршрут общественным транспортом на более 10 точек?
46. Трактор 1246 19.09.17 09:53 Сейчас в теме
(45) читай api Яндекса. Там должно быть сказано. Всё меняется, я сейчас не слежу за этой темой.
3. Yashazz 4709 03.10.14 11:25 Сейчас в теме
Советую пробовать такие фокусы в Гугл-картах. Похожие возможности API, но стабильнее, и адреса корректнее обрабатывает.
Вообще, отличная работа проделана, респект! Главное ведь именно логику реализовать, вон, сами яндексовцы не осилили и даже плакались об этом где-то в "песочнице".
Однозначный плюс.
4. harmer 1 03.10.14 12:08 Сейчас в теме
Обязательно скачаю, как только появятся мани.
Но есть один вопрос: почему выбран "жадный" алгоритм построения маршрута, ведь для задачи коммивояжера есть множество готовых реализаций?
5. Трактор 1246 03.10.14 12:19 Сейчас в теме
почему выбран "жадный" алгоритм построения маршрута

(4) harmer, потому, что я никогда ранее не занимался этой задачей. Готовых решений не искал. Решил способом, первым пришедшим в голову.
6. Трактор 1246 03.10.14 14:04 Сейчас в теме
Запустил сегодня этот же скрипт и маршрут построился по-другому :-) Прикольно. Похоже Яндекс переоценил расстояния от Селезнёвской до метро Новослободская и до метро Достоевская.

http://infostart.ru/upload/iblock/049/%D0%92%20%D0%B1%D1%80%D0%B0%D1%83%D0%B7­%D0%B5%D1%80%D0%B5.png

Обновление 14:12
Понял в чём дело!!! Дело в том, что расстояние меряется не в километрах, а в минутах!!! Сейчас до Красноказарменной добраться на метро быстрее, чем на том же метро до Ленинградского проспекта 40.
8. Smaylukk 185 04.10.14 10:16 Сейчас в теме
Я думаю, что стоит упомянуть в посте о том, что цикл вычисления расстояний между точками реализован тоже с помощью маршрутизации Яндекс. А на нее Яндекс поставил ограничения. По моему 25000 запросов в сутки, но точно не скажу - не могу найти.
Я занимаюсь автоматизацией службы доставки, поэтому этот вопрос изучал. В моем случае это более 200 маршрутов в день и в каждом в среднем 25 точек (325 запросов в цикле). Итого на один день надо 65 000 запросов. Так что соглашусь с harmer, алгоритм жадный.
По Google - позволяет построить маршрут не более чем по 25 точкам для платного API и 10 для бесплатного. API Google может само оптимизировать промежуточные точки.
9. Трактор 1246 04.10.14 10:42 Сейчас в теме
(8) Smaylukk, спасибо за сведения.
Так что соглашусь с harmer, алгоритм жадный.

Он жадный не из-за количества запросов. Он жадный, потому, что на каждом шаге выбирает самый "жирный кусок" (куда быстрее добраться).

API Google может само оптимизировать промежуточные точки.

О как! Это интересно. Я до этого не докопался.
12. pt_olga 61 08.10.14 18:57 Сейчас в теме
(8) Smaylukk, а за ~9 килобаксов в год Гугл строит и оптимизирует маршруты без ограничений по количеству точек :) вроде так было, когда мы считали
10. vano-ekt 123 07.10.14 12:09 Сейчас в теме
25к / сутки это на один ip или 1 ключ апи? :)
+
11. Трактор 1246 07.10.14 16:15 Сейчас в теме
(10) vano-ekt, ключ api в этом интерфейсе не используется.
13. kotlovD 87 14.10.14 17:40 Сейчас в теме
Скачал, спасибо. А как сделать чтобы маршрут сразу для автомобиля формировался?
14. Трактор 1246 14.10.14 17:59 Сейчас в теме
(13) kotlovD,
как сделать чтобы маршрут сразу для автомобиля формировался?

В параметре, передаваемом функции route заменить строку
routingMode: 'masstransit'
на
routingMode: 'auto'
15. kotlovD 87 14.10.14 18:26 Сейчас в теме
(14) отлично. Спасибо за оперативность
16. kotlovD 87 14.10.14 18:58 Сейчас в теме
правда в этом случае маршрут сразу не строится, приходиться нажимать кнопку "Переключить на общественный транспорт" и обратно, тогда маршрут выстраивается
19. Трактор 1246 17.10.14 13:46 Сейчас в теме
(16) лучше поздно, чем никогда. В прикреплении файл, который по умолчанию строит маршрут на автомобиле. Файл "ymap.html"

Некто Гоша Забыл http://forum.infostart.ru/profile/324667/ просил вывести только метки, без построения маршрута.
Заглушил построение маршрута. Тем более, что метки я всё-равно ставил отдельно. Но при этом скрипт выполняет оптимизацию. То есть много лишних действий. Файл "ymap только метки.html"
Прикрепленные файлы:
ymap.html
ymap только метки.html
17. assa 61 14.10.14 19:50 Сейчас в теме
Не качал. Хотел спросить на счет логики.
Для оптимизации яваскрипт рассчитывает расстояние от исходной точки до каждой точки доставки. Находит ближайшую. Делает её исходной.
С год назад написал такое же, но с гуглом. И тоже применил такой алгоритм. Был поражен результатом. Представьте ситуацию: исходная точка №1, далее следует перекресток, в лево точка А на расстоянии 1000м, в право тоже точка В, но на расстоянии 800 м. Такая логика делает точкой №2 точку В . Далее за точкой №2 следует точка С и, если от точки В до точки С расстояние меньше, чем от В до А, то точка А все больше удаляется и по итогу она становится последней в маршруте. Вы у себя проверяли такой вариант? У меня так завернуло, что пропала охота дальше что то выдумывать. После получения такого результата забросил. За обработку однозначно +
Прикрепленные файлы:
18. Трактор 1246 14.10.14 22:34 Сейчас в теме
(17) я уже опубликовав обработку почитал на эту тему. Да, маршрут не всегда оптимальный. Но в большинстве случаев попадает близко. Этой темой я занялся недавно. Может быть допилю логику под другой алгоритм.
Сейчас пилю раздачу заявок курьерам. Вкупе с задачей построения маршрута получается некислая задача.

(16) kotlovD, завтра посмотрю в чём дело.
20. It-developer 24 29.10.14 15:38 Сейчас в теме
Почему в ИТ статье ссылка на левый сайт? МИНУС автору!!!
Nrk; Agapov_Stas; +2 2 Ответить
21. пользователь 11.12.14 08:32
Сообщение было скрыто модератором.
...
22. Veselchak 171 10.02.15 11:04 Сейчас в теме
Не отображается карта, только пустое html-поле. В чем может быть дело?
23. Трактор 1246 11.02.15 01:15 Сейчас в теме
24. Veselchak 171 12.02.15 10:56 Сейчас в теме
В веб клиенте, тонком и толстом карта не отображается, а если открыть файл html браузером, то отображается.
А в картах 1.3 наоборот - в 1С работает, но не отображается если открыть файл html браузером.
25. daria.zubra@ace-target.ru 15.03.15 14:18 Сейчас в теме
Добрый день! скачала файл но не понимаю как им пользоваться! html открыла в гугле, а вот что делать с фалом epf? заранее благодарю.
26. Трактор 1246 17.03.15 22:50 Сейчас в теме
то делать с фалом epf

(25) daria.zubra@ace-target.ru, дык ради него всё и затеяно. Это внешнаа обработка для 1С. в 1С Файл/Открыть, выбираешь этот файл. Это демонстрация построения маршрута в связке с 1С.
27. korvin76 28.07.15 12:44 Сейчас в теме
А можно оптимизированный маршрут вернуть в табл.поле (чтобы можно было в печатном виде получить оптимизированный список адресов)?
28. Трактор 1246 28.07.15 14:21 Сейчас в теме
можно оптимизированный маршрут вернуть в табл.поле

(27) korvin76, можно решить так:
При вычислении маршрута записать точки маршрута в поле html документа.
А потом средствами 1С найти это поле html документа и прочесть информацию из него.
29. Трактор 1246 29.07.15 10:22 Сейчас в теме
(27) Что-то в (28) я кривое написал. Можно пользовать яндекс api из 1С. Формируешь http запрос из 1С, отправляешь его яндексу. Всё тоже самое, что и в яваскрипте, только из 1С. По сути это работа с rest сервисом.
30. reflexcompani 19 08.01.16 12:00 Сейчас в теме
Доброго дня. Данная обработка только для Москвы? Какой бы адрес не указывал другого города, ни чего не строится.
31. Трактор 1246 08.01.16 12:13 Сейчас в теме
(30) Я к Москве не привязывался. Возможно что-то с Яндекс картами. Город в адресе указываете?
32. reflexcompani 19 08.01.16 13:03 Сейчас в теме
да, город указывал. по разному пробовал.
Скажите, а то, что в обработке в процедуре при открытии, есть такие строки:
ЦентрКарты = "[55.781416, 37.611711]";
ГраницыМосквы = "[[56.1,37.0],[55.3,38.3]]";
ОтправнаяТочка = "['Москва, Селезневская улица, 21']";
Не может мешать построению маршрута в других городах?
cloudysaturn; Трактор; +2 Ответить
33. Трактор 1246 09.01.16 11:24 Сейчас в теме
ГраницыМосквы = "[[56.1,37.0],[55.3,38.3]]";

(32) reflexcompani, точно. Совсем забыл. Надо поправить границы карты.
34. Yulya8888 21.01.16 14:53 Сейчас в теме
Добрый день. Скачала обработку, запускала и через файл/открыть и через сервис/внешние обработки устанавливала, не запускается. УТ 10.3, предприятие 8.3 С чем может быть связано?
35. Трактор 1246 21.01.16 15:39 Сейчас в теме
>> С чем может быть связано?
(34) Yulya8888, с тем, что вы пытаетесь открыть её в обычном приложении, а надо в управляемом интерфейсе.
36. orlovskiy-a 50 02.03.16 10:43 Сейчас в теме
С недавнего времени при любом действии с картой начали появляться ошибки
,

Помогите исправить.
http://s020.radikal.ru/i719/1603/ac/405df2a7ad23.jpg
http://s016.radikal.ru/i337/1603/af/c0894c028a6e.jpg
COMPER; AlX0id; +2 Ответить
37. Трактор 1246 03.03.16 17:45 Сейчас в теме
(36) похоже 1С изменила js движок в платформе. Фирефокс отработал скрипты без ошибок. А тонкий клиент с руганью. Но маршрут таки построил. Сейчас со временем всё плохо. Боюсь что на разбирательства времени не хватит.
47. vitek1 01.10.17 23:38 Сейчас в теме
В описании указано
"Сообщение об ошибкаях можно отключить в настройках IE."
Пробовал разные настройки IE11. В тонком клиенте 1С все-равно при первой отрисовке карты выходит ошибка как в(36)
Какие настройки надо сделать, чтобы она не выскакивала?
38. cloudysaturn 08.06.16 10:52 Сейчас в теме
ну ёмоё, если она криво работает вы напишите в начале описание. что потом возможно доработаю если будет время. я ради вашей работы этой закинул деньги и теперь все коту под хвост(
39. Трактор 1246 08.06.16 13:57 Сейчас в теме
(38) cloudysaturn, написал комментарий в публикации. Яндекс карты криво отображаются в 1С. Но маршрут строится и отображается. Мешает только сообщение об ошибке при масштабировании карты. Будет время - посмотрю.
В веб клиенте, в фирефоксе, карты отображаются верно и маршруты строятся.
40. maikl007 91 04.07.16 12:22 Сейчас в теме
надо поправить в обработке код
| <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><meta http-equiv=""X-UA-Compatible"" content=""IE=8""/>
на
| <meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><meta http-equiv=""X-UA-Compatible"" content=""IE=9""/>

заменить IE=8 на IE=9
у меня заработало без ошибок
vtas; Трактор; +2 Ответить
41. Al-77 73 29.07.16 12:54 Сейчас в теме
Всем привет. я так понимаю сегодня ошибка с яндексом у всех ?
42. Hexed 2 01.08.17 11:51 Сейчас в теме
Разработчик, исправь адрес в шапке, https://yandex.ru/blog/mapsapi/28445 уже не открывается
43. user829115 18.09.17 16:39 Сейчас в теме
как проложить маршрут общественным транспортом более чем по 10 точкам?
48. proger.1c 10 01.12.18 22:10 Сейчас в теме
не работает обработка,
как бы ее реанимировать
49. nusv 47 27.03.19 17:10 Сейчас в теме
(48)Добрый день, получилось что-нибудь?
50. proger.1c 10 02.04.19 13:30 Сейчас в теме
51. systemaooo2007 16.04.19 09:54 Сейчас в теме
Добрый день! Вчера скачал - карта не отображается! Подскажите плз у кого получилось как исправить!!!
53. user790109 9 15.06.19 23:49 Сейчас в теме
52. user790109 9 15.06.19 23:23 Сейчас в теме
не работает ссылка. как исправить?
54. insurgut 207 03.10.19 06:47 Сейчас в теме
Жаль разработка не рабочая. Единственная, в которой хоть как-то решается задача построения оптимального пути. Хоть и в лоб (ищем ближайшую точку от текущей, к ней и едем и т.д.), что не всегда правильно, но все лучше, чем простым перечислением адресов.
55. Трактор 1246 03.10.19 11:31 Сейчас в теме
(54) ой! Не виноватый я. Это Яндекс изменил апи. Заниматься восстановлением некогда.
56. keyn5565` 18 05.12.19 15:30 Сейчас в теме
маршруты не строит от слова вообще...
57. пользователь 24.01.20 11:49
Сообщение было скрыто модератором.
...
58. пользователь 24.04.20 15:49
Сообщение было скрыто модератором.
...
59. user624515_praza 29.05.20 16:00 Сейчас в теме
Добрый день скачал вашу обработку не работает пробывал разными браузерами никак. Что необходима сделать
60. пользователь 12.03.21 13:13
Сообщение было скрыто модератором.
...
61. пользователь 12.03.21 13:17
Сообщение было скрыто модератором.
...
Оставьте свое сообщение