Маршрут по яндекс картам 8.2(обычное приложение)

Очередная обработка — пример построения маршрутов на картах яндекс через API. На основании списка адресов рассчитывает путь от точки до точки на карте.

Рассчитывает расстояние по маршруту.

Может использоваться при построении маршрутов в 1с.

Я знаю их тут много, но я написал свою.Tongue Out

Достоинства

Работа с яндекс картами через яндекс API. Возможно как образец, поэтому не дорого.

39 Comments

  1. Odieone

    Очередная обработка — пример построения маршрутов на картах яндекс через API. На основании списка адресов рассчитывает путь от точки до точки на карте.

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

    Reply
  2. mkostya

    А чего не на УФ?

    Reply
  3. Odieone

    УП?

    Reply
  4. bssat

    Хотелось бы управляемые формы.

    Reply
  5. ssn5810

    глючит «Получение элемента по индексу для значения не определено

    Р = СтрЗаменить(МАссив[0], «;», Символы.ПС);»

    Reply
  6. Odieone

    Сделаю на УП не проблема, выложу. Каким образом глючит? я когда тестировал не глючило.

    Reply
  7. mzelensky

    А работает по всей РФ или ток Москва? Просто не так давно тестироал похожую обработку и работала она ток по Москве и Московской области.

    Reply
  8. Odieone

    (6) mzelensky, я тестировал маршруты из Москвы в Минск потом в Нальчик а потом в Саратов, работала, работает как работают яндекс карты в нете.

    Reply
  9. kostia.ck

    Обработка сможет построить маршрут более чем по 10 точкам?

    Reply
  10. Odieone

    (8) kostia.ck, Не пробовал если честно.

    Reply
  11. Odieone

    (8) kostia.ck, Можно, я пробовал 15, нормально было.

    Reply
  12. Odieone

    (4) ssn5810, Я добавил новую обработку. чуть подправил эту беду. Если хочешь исправить то добавь в формирование адресов счетчик. и результат счетчика в «ПодключитьОбработчикОжидания(«ЗаписатьМаршрутВТЧ»,счетчик,Ложь);» В итоге будет кашерно.

    Reply
  13. ssn5810

    Вообще клинит даже закрыть не дает

    при добавлении в маршрут или адреса

    {Форма.Форма.Форма(14)}: Получение элемента по индексу для значения не определено

    Р = СтрЗаменить(МАссив[0], «;», Символы.ПС);

    Reply
  14. ssn5810

    прогу можно закрыть только через диспетчер задач, КРУТО !!!!

    Reply
  15. Odieone

    (12) ssn5810, я же сказал как изменить, во вторых возможно надо сделать fix IE. Либо нет медленный слишком. Я просто исправил эту проблему. У меня работает стабильно. эта ошибка ещё возможна при пустых либо коряво набранных адресов. я несколько раз прогнал и проблемы не было. я выложил исправленную. попробуйте

    Reply
  16. Odieone

    (13) ssn5810, прога работает, может вам надо разбираться не с обработкой?!

    Reply
  17. ssn5810

    пробовал «улучшеную», платформа 1С8.2.13 УТ

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

    {Форма.Форма.Форма(14)}: Получение элемента по индексу для значения не определено

    Р = СтрЗаменить(МАссив[0], «;», Символы.ПС);

    Ответили: (14)

    Reply
  18. Odieone

    (16) ssn5810, у других не клинит. Разбирайтесь.

    Reply
  19. serg_gres

    Жалко не во всех странах маршрут пролаживает, но будем надеяться Яндекс будут дописывать.

    PS. Год-два назад Беларуси не было в прокладке маршрутов.

    Reply
  20. goodwin12

    Интересно для любой конфы? нужны какие нито библиотеки или еще что&

    Reply
  21. goodwin12

    Обработка работает, просто надо сначала адреса писать а потом кнопку запустить нажимать

    Reply
  22. goodwin12

    Еще бы можно было отмечать прямо на карте точки маршрута а не писать хотя бы, получилось бы что то типо прокладки маршрута в ручную. А вообще он по какому принципу маршрут сам прокладывает? Ну молчу конечно про поиск оптимального маршрута между скажем 5 точками маршрута)

    Reply
  23. acherey

    Очень инретесно про принцип прокладывания маршрута, скажем есть 20 адресов, как между ними будет прокладыватлься путь? есть ли время в пути? Планируется ли дальнейшее развитие функционала?

    Reply
  24. Odieone

    (22) acherey, Можно расстояние между точек, время, пробки. Это просто вариант который вы можете развиват ьсами с помощью API

    Reply
  25. GreenFox

    Развивать тяжело, хочеться уже готовое ))).

    А за пример использования спасибо.

    Кто может подсказать, что для подобных задач лучше Яндекс или Гугл?

    Reply
  26. GreenFox

    Развивать тяжело, хочеться уже готовое ))).

    А за пример использования спасибо.

    Кто может подсказать, что для подобных задач лучше Яндекс или Гугл?

    Reply
  27. Odieone

    (25) GreenFox, Яндекс. Гугл русских улиц не знает

    Reply
  28. alex_asoft

    Попробовал и сравнил с данными, полученные с GPS трекеров. Разница составила 5-7% , причем разброс как в большую , так и в меньшую сторону. Будем посмотреть …

    Reply
  29. Гость

    Отличная обработка, как раз то,что мне нужно! Столько времени мне сэкономил. Спасибо огромнейшее!

    Reply
  30. zhleonid8

    спасибо автору!

    Reply
  31. zhleonid8

    беларусь как?

    Reply
  32. Angeros

    а почему сделано через такой необычный механизм ожидания? нет ли стандартных методов ожидания?.

    Reply
  33. Odieone

    (31) Angeros, Ну вообще я много разных способов придумать пытался, это самый эффективный. Но данная обработка всего лишь шаблон для продвижения дальше. Если есть идеи буду рад.

    Reply
  34. Angeros

    (32) Все классно, я до этого сам не догадался, хотя и задача стоит другая. Вызов процедуры чтения результата происходит, через обработку ожидания, которая периодически проверяет результаты работы скрипта. Изящно но в тоже время довольно не стандартно в контексте стандартной модели кодинга в 1с. Больше похоже на принцип из явыскрипт

    Очень похоже у вас в этой области больше знаний. Потому спрошу еще пару вопросов по теме.

    Задача.

    Есть массив точек которые надо посетить, начальная и конечная точки есть одна и та-же. Необходимо посетить их все пройдя минимальный путь. Для начала мне потребуется выбрать путь от начала до второй, от начала до третей и т.д. — идем в ближайшую. из ближайшей далее все сначала повторяем, но исключим те точки которые уже посетили. Так предполагается найти наш путь.

    Получает чтобы разрешить эту задачу необходимо запускать заковыристый механизм, который вы описали несколько раз. и по ходу вопросы.

    Почему не использовалось работа с версией Яндекс карт 2.0?! Можно ли вообще передать вызов из яваскрипта в 1с. пытался с событиями разобраться но все очень натянуто?. Можно как-то контролировать работу callback функции внутри яваскрипта, чтобы управление в 1с передавалось только по окончании работы скрипта включая возврат результатов.? Возможно ли вообще работать с ява скрипт из 1с без объекта хтмл?

    Reply
  35. Odieone

    Может я не понимаю что то но в задаче вы имеете ввиду веерный тип развозки логистики? Я прошу прощения просто не пойму логику посещения точек. Если задаем путь от начала до конца то он определяет от начала через точки.

    Отвечаю на вопросы. Я не в курсе был про яндекс карты 2.0 и использовал первые попавшиеся API на сайте яндекса. Вызов из яндекс скрипта..не пробовал… но можно по идее все, хотел передать эту обработку уже через c#, если честно у самого было много идей по этому поводу… но заказчику тогда хватило и этого, да и смысла разрабатывать это дело под 1с не вижу смысла нет потребностей у людей, идей много было тогда. Но скажу что долго парился с проблемой передачи в 1с и обратно данных. Честно говоря самого этот способ бесит. Пришлось разрулить по детски. А вообще была проблема с тем что если не использовать механизм таких задержек то данные не возвращаются и идет потеря.

    Reply
  36. opx

    Жаль, что не прокладывает оптимальный маршрут. Долго бился с тем, чтоб я.карты отображали оптимальный маршрут между несколькими точками, но все тщетно. И кстати заменить обработчик ожидания можно и нужно.

    //YMaps.Events.observe(router, router.Events.Success, function () {

    Вот в этой процедуре и надо записать

    document.title = ‘Сообщить(«Расстояние тут… вроде через getLenght()… но надо пробовать»);’;

    А на событие поляHTMLдокумента «onpropertychange» повесить

    Если ЭлементыФормы.ПолеHTMLДокумента.Документ.title <> «» Тогда

    Выполнить(ЭлементыФормы.ПолеHTMLДокумента.Документ.title);

    КонецЕсли;

    Ну или как-то так. Думаю задумка понятна, а в 1С ее не проверял. Вероятно, что ошибку выдаст, которую легко исправить.

    Reply
  37. gosizo

    Яндекс карта. допустим есть несколько меток, можно ли как-то смасштабировать карту (не руками, а программно), что бы масштаб был максимально увеличен и в тоже время все метки были видны (в границах карты)?

    Reply
  38. plastilin

    с api 2.0 работает??

    Reply
  39. rayastar

    Супер!!!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *