Форма выбора координат Yandex карт (управляемая форма)



Обработка позволяет найти нужный адрес на карте Yandex. Отправить сообщение форме-владельцу или всем формам, со строкой координат.

 

Доброго времени суток!

Навеяно всеми обработками, связанными со словом «Yandex», которые встречаются на данном сайте. Отдельное спасибо всем авторам этих обработок.

Данная обработка служит для оповещения формы-владельца (а если ее нет всех форм) данными в виде строки координат формата «;». Думаю полезно будет для выбора координат элемента справочника наподобие «Бизнес регион».

Основные возможности: 

1. Поиск адресов (ограничение по количеству результатов задается на форме).

2. «Планирование» карты к выбранному результату на карте.

3. Выбор координат и оповещение форм.

4. Форма обработки полностью создается программным путем.

Кому-то может пригодится как пример или возможно в своей конфигурации.

P.S. Критика, найденные ошибки, недочеты — приветствуются.

P.P.S. На счет добавления возможностей, функционала и т.п. — пишите, чего-нить придумаем.


Обновление от 18.09.2012 

Добавлено:

1. При «клике» на карте появляется метка зеленого цвета, на месте клика. Метка предыдущего клика удаляется.

2. По истечению 30 секунд метка последнего «клика» тоже удаляется.

 

Обновление от 07.12.2011 

Исправлено:

1. Некорректный выбор координат (разделитель должен быть «.»), при клике на карте.

 

Обновление от 07.09.2011

Добавлено:

1. Количество результатов поиска.

2. Точность найденных результатов.

3. Некоторые интерфейсные изменения.

26 Comments

  1. BigB

    При открытии пишет:

    {Форма.Форма.Форма(289)}: Поле объекта не обнаружено (Информация32)

    ПоказатьОповещениеПользователя(«Работа с картой Yandex», , «Загрузка карты…», БиблиотекаКартинок.Информация32);

    Reply
  2. motkot
    BigB пишет:

    При открытии пишет:

    {Форма.Форма.Форма(289)}: Поле объекта не обнаружено (Информация32)

    ПоказатьОповещениеПользователя(«Работа с картой Yandex», , «Загрузка карты…», БиблиотекаКартинок.Информация32);

    Исправлено, обработку выложил.

    Reply
  3. DitriX

    Добавьте погоду 🙂 Т.е. открываешь карту на всю страну, а там над каждым регионом — погода 🙂

    А потом еще миниграфик с рейтингом продаж, и вообще можно тогда больше никуда не залазить 🙂

    Reply
  4. motkot
    DitriX пишет:

    Добавьте погоду Т.е. открываешь карту на всю страну, а там над каждым регионом — погода

    А потом еще миниграфик с рейтингом продаж, и вообще можно тогда больше никуда не залазить

    Ну погода это конечно немного другое 🙂 не для этой задачи… Можно сделать, но жалко времени.

    А на счет продаж, да, такой универсальный отчет есть. И замечу — у Вас есть опыт использования СКД в другой обработке/отчете 😉

    Reply
  5. DitriX
    А на счет продаж, да, такой универсальный отчет есть

    На карте, с графиками по региону, с выставлением маршрута и все это интерактивно?

    Гео схемы не в счет, они «квадратные»

    И замечу — у Вас есть опыт использования СКД в другой обработке/отчете

    Не понял что то, это вопрос? утверждение?

    Просто не все делается ради результата, что то делается ради интереса и удовольствия.

    А вот это было бы так раз интересно сделать, или посмотреть варианты.

    А раз вы спросили что добавить — я ответил… А добавлять или нет — ваше дело…

    Reply
  6. motkot
    DitriX пишет:

    с выставлением маршрута

    Имелось ввиду маршрут чего?

    DitriX пишет:

    и все это интерактивно

    А как иначе?

    Reply
  7. mgor

    Небольшой косяк:

    — если координаты брать из таблицы поиска, то десятичный разделитель числа — точка и всё ок!

    — а если, кликая мышкой по карте, то разделитель — запятая и дальше эти координаты использовать нельзя.

    Я бы подправил:

    Процедура ТекстHTMLПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)

    ТочкаШирота = СтрЗаменить(Элемент.Документ.body.getAttribute(«CoordLat»),»,»,».»);

    ТочкаДолгота = СтрЗаменить(Элемент.Документ.body.getAttribute(«CoordLng»),»,»,».»);

    Reply
  8. motkot

    (7) mgor, Спасибо, исправил.

    Reply
  9. DyachokSF

    а для того что бы пользоваться этой программой разрешение от yandex?

    Reply
  10. motkot

    (9) DyachokSF, данная обработка выложена для примера/ознакомления, изучения одного из варианта использования сервиса от Яндекс. Кто хочет использовать ее в своих коммерческих целях подставит свой ключ (он бесплатный после регистрации на сайте Яндекс карт). Все остальное изложено в SDK по картам.

    Не совсем понятно о каком разрешении идет речь?

    Reply
  11. DyachokSF

    Платить сайту maps.yandex.ru для использования яндекс мап нужно?

    Reply
  12. motkot

    (11) DyachokSF, зайдите на сайт, уточните. На момент оформления публикации не нужно. На самом деле там совершенно другие вещи используются, подробнее на Api Yandex Maps

    Reply
  13. DanilaDru

    Спасибо. Хорошая наработка, плюсую. Относительно усовершенствования. Предлагаю при клике на карту для ручного определения координат выводить маркер в том месте, а то не понятно где щелкнул и что за координата.

    Reply
  14. motkot

    (13) DanilaDru, спасибо за комментарий, сейчас пока некогда, но учту.

    Reply
  15. DanilaDru

    По сути у Вас уже все есть для этого. У карты объявлен метод AddPointOnMap() при клике на карте в случает если ДействиеКарты = 1 можно вызвать

    Элементы.ПолеХТМЛ.Документ.parentWindow.eval(«AddPointOnMap(» + СтрЗаменить(ТочкаДолгота, «,»,».») + «,» + СтрЗаменить(ТочкаШирота,»,»,».») + «)»);

    Это отрисует маркер в точке, на которой кликнули.

    Reply
  16. motkot

    (15) DanilaDru, готово, только не просто добавлением строчки, чуть сложнее. ну ниче, делать было нечего…

    Reply
  17. motkot

    Глянул API яндекса, там оказывается версия вышла 2.0, толи в 1С-ке клиент порезан, толи версия API еще сыровата, не взлетает чето без ошибок.

    Reply
  18. miroha

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

    Не понял функцию с синим маркером.

    Reply
  19. motkot

    (18) miroha, а что непонятно на счет синего маркера? очень рад, что обработка пригодилась.

    Reply
  20. OrsoBear

    Все же не понятно. Лазил на сайте Яндекса, предложили за 5000 в месяц API 3.0 в данном случае получается можно работать без оплат?

    И еще момент.

    Если у меня база работает через прокси сервер, сможет ли обработка цепляться к карте?

    Reply
  21. OrsoBear

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

    Есть ли возможность в Вашем варианте работы указывать зоны в виде окружности определенного радиуса, или полигон?

    Reply
  22. motkot

    (20) OrsoBear, изучите информацию по http://api.yandex.ru/maps/doc/intro/concepts/intro.xml — там все есть, Вам нужна версия 1.х (платно или нет ищите там, постами выше я писал, что на момент публикации никто ни у кого не просил денег). Возможно мы говорим вообще о разных механизмах. Дайте ссылку, где с Вас просят деньги.

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

    Reply
  23. motkot

    (21) OrsoBear, нет, сейчас просто ставятся метки. В описании же вроде как писал, что обработка умеет. Обработка изначально планировалась для привязки к некой сущности в базе типа «бизнес-регионы» для удобства выбора координат этого региона менеджерами.

    Reply
  24. YuriFm

    как можно без вывода на форму карты, выполнять поиск адресов. если сделать объект формы невидимым вылетает ошибка.

    Reply
  25. motkot

    (24) YuriFm, я недавно подобную другую задачу решал, сделал вывод — что никак. Т.к. чтобы работали скрипты да и сама страница, нужно наличие поля HTML документа обязательно на форме, с видимостью.

    Reply
  26. YuriFm

    (25) да, вы правы. Сделал так. Поле HTML документа вынес на отдельную вкладку, и при открытии формы её делаю активной. У поля HTML-документ возникает событие ДокументСформирован, когда он построен и готов к использованию, в этом событие переключаю вкладку на нужную. Пока что так.

    Reply

Leave a Comment

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