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

08.06.16

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Пример оптимизации маршрута с помощью Яндекс карт api 2.1.zip
.zip 12,48Kb ver:1.0
412
412 Скачать (1 SM) Купить за 1 850 руб.

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

В прикреплённом архиве внешняя обработка и 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

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

См. также

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

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    1237    1    1    

4

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

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

36000 руб.

03.08.2020    18356    20    22    

18

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23): 1С:Управление торговлей, 1С:Управление Нашей фирмой 3, 1С:Комплексная автоматизация 2, Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2. При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20565    13    19    

18

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

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    320    2    0    

5

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    2490    1    0    

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

(1) anig99, не знаю. В документации об этом ничего не сказано http://api.yandex.ru/maps/jsbox/2.1/
На некоторых адресах яндекс глючит. Не строит к ним маршрут.
7. Трактор 1254 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. Трактор 1254 19.09.17 09:53 Сейчас в теме
(45) читай api Яндекса. Там должно быть сказано. Всё меняется, я сейчас не слежу за этой темой.
3. Yashazz 4801 03.10.14 11:25 Сейчас в теме
Советую пробовать такие фокусы в Гугл-картах. Похожие возможности API, но стабильнее, и адреса корректнее обрабатывает.
Вообще, отличная работа проделана, респект! Главное ведь именно логику реализовать, вон, сами яндексовцы не осилили и даже плакались об этом где-то в "песочнице".
Однозначный плюс.
4. harmer 1 03.10.14 12:08 Сейчас в теме
Обязательно скачаю, как только появятся мани.
Но есть один вопрос: почему выбран "жадный" алгоритм построения маршрута, ведь для задачи коммивояжера есть множество готовых реализаций?
5. Трактор 1254 03.10.14 12:19 Сейчас в теме
почему выбран "жадный" алгоритм построения маршрута

(4) harmer, потому, что я никогда ранее не занимался этой задачей. Готовых решений не искал. Решил способом, первым пришедшим в голову.
6. Трактор 1254 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 186 04.10.14 10:16 Сейчас в теме
Я думаю, что стоит упомянуть в посте о том, что цикл вычисления расстояний между точками реализован тоже с помощью маршрутизации Яндекс. А на нее Яндекс поставил ограничения. По моему 25000 запросов в сутки, но точно не скажу - не могу найти.
Я занимаюсь автоматизацией службы доставки, поэтому этот вопрос изучал. В моем случае это более 200 маршрутов в день и в каждом в среднем 25 точек (325 запросов в цикле). Итого на один день надо 65 000 запросов. Так что соглашусь с harmer, алгоритм жадный.
По Google - позволяет построить маршрут не более чем по 25 точкам для платного API и 10 для бесплатного. API Google может само оптимизировать промежуточные точки.
9. Трактор 1254 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 124 07.10.14 12:09 Сейчас в теме
25к / сутки это на один ip или 1 ключ апи? :)
+
11. Трактор 1254 07.10.14 16:15 Сейчас в теме
(10) vano-ekt, ключ api в этом интерфейсе не используется.
13. kotlovD 88 14.10.14 17:40 Сейчас в теме
Скачал, спасибо. А как сделать чтобы маршрут сразу для автомобиля формировался?
14. Трактор 1254 14.10.14 17:59 Сейчас в теме
(13) kotlovD,
как сделать чтобы маршрут сразу для автомобиля формировался?

В параметре, передаваемом функции route заменить строку
routingMode: 'masstransit'
на
routingMode: 'auto'
15. kotlovD 88 14.10.14 18:26 Сейчас в теме
(14) отлично. Спасибо за оперативность
16. kotlovD 88 14.10.14 18:58 Сейчас в теме
правда в этом случае маршрут сразу не строится, приходиться нажимать кнопку "Переключить на общественный транспорт" и обратно, тогда маршрут выстраивается
19. Трактор 1254 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. Трактор 1254 14.10.14 22:34 Сейчас в теме
(17) я уже опубликовав обработку почитал на эту тему. Да, маршрут не всегда оптимальный. Но в большинстве случаев попадает близко. Этой темой я занялся недавно. Может быть допилю логику под другой алгоритм.
Сейчас пилю раздачу заявок курьерам. Вкупе с задачей построения маршрута получается некислая задача.

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

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

(27) korvin76, можно решить так:
При вычислении маршрута записать точки маршрута в поле html документа.
А потом средствами 1С найти это поле html документа и прочесть информацию из него.
29. Трактор 1254 29.07.15 10:22 Сейчас в теме
(27) Что-то в (28) я кривое написал. Можно пользовать яндекс api из 1С. Формируешь http запрос из 1С, отправляешь его яндексу. Всё тоже самое, что и в яваскрипте, только из 1С. По сути это работа с rest сервисом.
30. reflexcompani 22 08.01.16 12:00 Сейчас в теме
Доброго дня. Данная обработка только для Москвы? Какой бы адрес не указывал другого города, ни чего не строится.
31. Трактор 1254 08.01.16 12:13 Сейчас в теме
(30) Я к Москве не привязывался. Возможно что-то с Яндекс картами. Город в адресе указываете?
32. reflexcompani 22 08.01.16 13:03 Сейчас в теме
да, город указывал. по разному пробовал.
Скажите, а то, что в обработке в процедуре при открытии, есть такие строки:
ЦентрКарты = "[55.781416, 37.611711]";
ГраницыМосквы = "[[56.1,37.0],[55.3,38.3]]";
ОтправнаяТочка = "['Москва, Селезневская улица, 21']";
Не может мешать построению маршрута в других городах?
cloudysaturn; Трактор; +2 Ответить
33. Трактор 1254 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. Трактор 1254 21.01.16 15:39 Сейчас в теме
>> С чем может быть связано?
(34) Yulya8888, с тем, что вы пытаетесь открыть её в обычном приложении, а надо в управляемом интерфейсе.
36. orlovskiy-a 51 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. Трактор 1254 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. Трактор 1254 08.06.16 13:57 Сейчас в теме
(38) cloudysaturn, написал комментарий в публикации. Яндекс карты криво отображаются в 1С. Но маршрут строится и отображается. Мешает только сообщение об ошибке при масштабировании карты. Будет время - посмотрю.
В веб клиенте, в фирефоксе, карты отображаются верно и маршруты строятся.
40. maikl007 92 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 74 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 10 15.06.19 23:49 Сейчас в теме
52. user790109 10 15.06.19 23:23 Сейчас в теме
не работает ссылка. как исправить?
54. insurgut 208 03.10.19 06:47 Сейчас в теме
Жаль разработка не рабочая. Единственная, в которой хоть как-то решается задача построения оптимального пути. Хоть и в лоб (ищем ближайшую точку от текущей, к ней и едем и т.д.), что не всегда правильно, но все лучше, чем простым перечислением адресов.
55. Трактор 1254 03.10.19 11:31 Сейчас в теме
(54) ой! Не виноватый я. Это Яндекс изменил апи. Заниматься восстановлением некогда.
56. keyn5565` 19 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
Сообщение было скрыто модератором.
...
62. Светлый ум 438 07.11.24 08:37 Сейчас в теме
Оставьте свое сообщение