Для работы с текущей на момент скачивания версией API потребуется курить мануал и делать доработку.
Давно был интерес реализовать работу с картой на базе 7.7, а тут попросили сделать интерактивный выбор объекта на карте, чтобы привязывать координаты домовзданий к элементам справочника (недвижимость).
Вооружился наработками с http://www.1cpp.ru/forum/YaBB.pl?num=1316457428 (благодарность авторам за труды) и документацией к API карт http://api.yandex.ru/maps/doc/intro/concepts/intro.xml и получилось такое вот решение.
C javascript столкнулся абсоютно впервые, поэтому строго не судите если где-то нелогичнонеоптимально.
Обработка позволяет увидить, изучить и понять принцип работы с картами с платфомы 7.7, получить основу для своих дальнейших наработок.
Из плюсов в получившейся реализации для себя выделил следующее:
— для геокодирования не используется HTTP геокодер с получением ответом в виде xml — все запросы через API
— возврат информации в 1с по метаданным геообьектов
— интерактивный поиск в уже открытой карте, передвигаемая метка с обратным геокодированием
— запросы с учетом асинхронной работы геокодера (тоесть учитывается тот факт, пришол ответ от севера или нет)
— при задействованой сериализации, когда запускаеш обработку много раз подряд (10-20-30 раз), база не вываливается. О проблеме вылета сказано в указаной ветке форума 1сpp. Изначально и у меня база отваливалась очень часто, но в итоговой реализации все отлично — более 30 запусков не вызывает вылета базы.
— при проверке на Windows Server 2008 обработка не работает, пока не дописать несколько сайтов в список доверенных (безопасность IE)
чтобы не делать это для каждого юзера в терминале, получилось автоматизировать это с помощью правки реестра самой обработкой.
Для работы нужны FormEx и 1CPP (проверялось на 2.05.101 и 3.2.3.17 соответственно).
Первая публикация — прошу строго не судить)
Что забыл — спрашивайте — добавлю, отвечу.
Данная обработка представлена как пример для ознакомления с API Яндекс-карт (согласно Пользовательскому соглашению).
За исключением некоторых претензий к грамотности («выбранные» пишется с двумя «н» и так далее, и по интерфейсу, и по статье) — вероятно, серьёзная вещь. Это нам тут не 8.Х с их встроенным недо-браузером, это вообще 7.7, поэтому в любом случае изврата больше на порядок.
(1) Yashazz, ну рядом выбранные написано же верно))) На самом деле, много просто мимолетом дорисовывал специально для публикации здесь плюс еще переводы с украинского для этих же целей. Ну и ночная работа и раскладка клавиатуры Макбука не способствуют идеальной орфографии))) Основная концентрация в сабже была на javascript
А как на счет реализации подсчета расстояния между точками на карте? Есть ли такое решение
(3) ToJIuK, у меня были задачи выбора и отображения объектов — они и реализованы. Но имея мой пример, заглянув наhttp://api.yandex.ru/maps/jsbox/ и http://ymapsapi.ya.ru/posts.xml?tag=8493598 можно реализовать практически все, что умеют карты.
Мощно. Однако. Однозначно плюс
В первом варианте при выборе объекта на карте работа происходит только с одной меткой. При открытии она автоматически создается на найденом адресе. Потом метку можно драгнуть (передвинуть) либо просто щелкнуть в другом месте — метка передвинется, или использовать встроенный в правый верний угол карты поиск — после выбора результата поиска метка передет на выбраный адрес. Если по изначально переданному адресу ничего не найдено — при открытии метки не будет вообще, появится она только после аналогичных действий — щелчка на карте или поиска. При переезде метки выполняется обратный геокодинг (поиск адреса по координатам) и название метки устанавливается как адрес объекта. Эта логика продиктована поставленной задачей — выбор объекта с карты, то есть необходимо было работать с единым элементом, без возможности «запутаться».
(3) Если речь о возможностях Яндекс API, то там много чего можно, selesta правильно привёл ссылки. А если речь о принципе и подходе 8.Х, то можно делать, например, так:http://infostart.ru/public/164621/
Ещё раз респект автору, заставить это крутиться под клюшками — почти подвиг.
А как же байкот российских товаров на украине :)….
+ Однозначно!
зачет
Посмотрим
(0) спасибо за обработку.
Скажите а можно ли сделать так :
Чтобы была сериализация и окно формы было обычным — с заголовком
и стандартными кнопками , закрыть , свернуть, максимизировать ?
(13) _Z1, можно, закоментируйте просто 2 строки в коде:
Окна = ….
Окна.СтильОкна….
была задача также автоматически пройтись по базе и получить координаты по всем елементам справочника (по большому масиву адресов)
столкнулся с тем, что похоже сериализация таки вешает 1с со временем, тоесть после 10-15 вызовов подряд
пришлось сделать еще 1 вариант обработки без отображения карты, так сказать для фонового вызова в цикле
обработка ищет адрес, пишет результат в файлик, и закрывается. Вызвавшая ее обработка считывает файлик как СписокЗначений
и получает аналогичныые метаданные объекта. Протестировано на 1000+ адресах — без сбоев, отрабатывает четко
(15) читал (в api 2.0 ) что если много объектов
то надо делать геолакацию на сервере ( наверное имеется ввиду сервер yandex )
и есть примеры как это надо делать.
(14) спасибо получилось.
вот еще как бы было замечено что одни и теже гео данные иногда
отображаются быстро а иногда считается достаточно долго.
это зависит от загрузки серверов яндекса или есть еще какие либо причины ?
(16) _Z1, я и так впервые столкнулся с яваскриптами и то что получилось и так для меня подвиг, в (8) это оценили)
поэтому не хотелось тратить еще кучу времени чтобы с этим разобраться
(17) загрузка да — зависит от интернета и отклика от сервера яндекса, 1с и скрипт отрабатывают одинаково
(18) да я о другом.
я прочитал что когда надо сразу получить геокодирование многих объектов то
надо делать другими методами.
т.е. есть два способа геокодированияя на стороне клиента — как сделано у Вас
также есть геокодирование на стороне сервера ( этот способ надо применять когда за один раз хотим получить
геоданные о многих объектах )
Если Вам это интересно я могу поискать ссылку как надо поступать в этом случае.
(19)я все правильно понял, именно об этом, и ответил тоже касательно этого
сабж тута _http://api.yandex.ru/maps/doc/jsapi/2.x/dg/concepts/geocoding.xml#multi-geocode
мне просто хватило секаса чтобы завести текущую реализацию, на эту уже небыло желания
На основании данной обработки. Получилось реализовать построение маршрута по не скольким точкам и подсчет расстояния (Иногда работает не очень корректно, но это походу проблема яндекса: строит не оптимальный маршрут). А так очень хорошая ВЕЩичка.
(21) Молодца, прикрепи решение сюда к сообщению или кинь в личку ссылку поглядеть
(21)
Ну да маршрут Белгород — Ростов строит через Харьков.
и еще вопрос не сделал ли чобы можно было создать карту один раз и потом
строить много разных маршутов с помощью ПриПовторномОткрытии() ( т.е. я до конца с этим не разобрался)
(24) сделал аналогично, только еще поставил
автомасштабирование карты по маршруту.
Так если тебе длина маршрута в 1с не нужна
то строки можно убрать
list.AddValue(distance,i+1);
Object1C.Msg(list);
| Object1C = null; //только так 1с перестала вылетать с использованием Сериализовать
Мощная штука, огромный труд!
А вот у меня карта мышкой не двигается, это нормально или только у меня так?
(26) Проверил — у меня карта двигается.
А есть тоже самое только на google?
(28) andrey-st, для Google есть просто подсчет расстояния без отрисовки маршрута.
А у кого нибудь получилось отправить на печать карту со списком адресов? что то у меня не получается.
Было бы интересно на это посмотреть!
(26) isnail, У меня тоже карта мышкой не двигается.Также на работает инструмент линейка.Не знаю в чем проблема. Автору спасибо за труд.Хорошая робота.
(33) smitti911, Двигается только если тянуть за метку(балун)
(34) smitti911, да да у меня тоже такая проблема . но меня как то это не очень напрягает и поэтому не хочу разбираться в чем бело )
Работал нормально. Но на неделе Перестала отображаться карта при построении маршрута! Кто нить сталкивался с такой проблемой ? Адреса есть а изображения карты нет
Автору почёт, сейчас буду смотреть.
Сверхзадача — перевод из свободного текстового формата адресов в КЛАДР.
Если кто-то уже сделал автоматическое нажатие кнопки на карте — дайте готовый код, пожалуйста. Тогда успею сделать настойку на черноплодной рябине и отблагодарю и Игоря, и автор доработки.
Javascript прост и логичен. Особенно когда есть за спиной хороший специалист 🙂
Кнопку нажимать не надо, теперь я могу исправлять адреса автоматически, сейчас буду выводить критерий полноты.
(39) Скинул на почту пример обработки массива адресов
Получил, спасибо, работает.
Никак не могу запустить на сервере Win2003 — безопасность IE ниже Medium не даёт, прописал сайты-исключения — всё равно спрашивает «An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this interaction?». Есть у кого-нибудь мысли?
Тоже проблема передвижения карты, но она только при открытии окна в модальном режиме, в обычном все ок.
ребят скиньте пожалуйста в личку кто нибудь это чудо! Очень прошу.
Неделю уже воюю, а тут такое решение готовое для 7.7
с 16.02.16 лавочку прикрыли доступ к карта по API 2.0 закрыли. Пишет ошибкуhttps://api-maps.yandex.ru/2.0.43/release/combine.xml?modules=3N5x6D3G373R3H3_-j.C_e_h-,-)5e5h8H.I5n_b$w$y$A784Q-K-L9Z$d$a9x9R8a7)-e797$5c9C7z7j5f-g-o-i8e3T7Y4(5G3S5R9$9-9.9_9*999!9,9q9j9) кто нить знает как победить?
(44) ToJIuK, используй 2.0.42
спасибо заработало. А то я уже было начал переписывать под Api 2.1 но все безрезультатно , как будто АктивИкс не работает с API2.1 . главное если сохраненный .html В IE на прямую скрипт отрабатывает нормально. А вот из 1с выдает ошибку. Еще раз спасибо за помощь
(46) ToJIuK, у меня получилось под 2.1
Ребят,
http://infostart.ru/public/67996/) привязать? Есть куча идей еще…
кто сможет данные «Карты» к конфигурации Оптимус Грузоперевозки (
Разработчик карт молчит, разработчику Оптимуса некогда…
Украина.
Скайп: silver_aleksander
(48) DirtyCat,
Выложи код, пожалуйста.
Или кто-нибудь помогите рабочим вариантом под Windows 2012 R2
win7 x64
1cpp вер 3.2.3.17
formex вер 2.0.5.108
Ругается на ошибку в скрипте:
Многоуважаемый автор, будьте так любезны ответьте хоть что-то касательно ошибки.
(52) nikk911, отвечаю
это ошибка не автора и не данной публикации а последствие изменения АПИ карт, возможно версия 2.0.44 устарела уже, прошло все-таки 2 года
выше описана аналогичная ситуация
рецепт: брать актуальную версию АПИ, курить ее и править код
(53)
Спасибо!
Думаю стоит писать в описании что обработка на данный момент не работает.
Я не говорю что обработка дорого стоит, но я за честность!
Я лично считал что это проблема винды (часть приколов была завязана на безопасности). А часть таки в API, которого я не курил ))) Качал чтобы покурить — а табак мокрый оказался.
(54) Дописал, для меня это просто казалось само по себе понятным.
При выводе карты в IE выходит ошибка.
Ошибка Веб-страницы
Строка: 1
Ошибка: «JSON» не определено
Подскажите, как это можно исправить?
Было что-то подобное?
(56) Это пламенный привет от микрософт.
Сделать ,судя по всему, ничего нельзя.
(0)
Пример интересный:
1) геокодер, отображение и выбор объектов — если это подразумевает возможность передать карте из 1С 7.7 адреса текстом — работает;
2) возврат значений — из карт в 1С 7.7 — не работает.
Карты не активны. На клавиатуру и левую кнопку мыши не реагируют и только отдаляются правой кнопкой.
В теме:яндекс карты в 7.7 — нашёл ещё два примера:
Диспетчер маршрутов.ert ,
ДубльГИС.ert .
1)
2)
Первый в Торговля+Склад 9.2 (7.7.990) открылся с ошибками. Неполный перечень ошибок:
Второй пример использует 2gis.ru:
У второй внешней обработки карта активна и реагирует на левую кнопку мыши.
Алгоритм взаимодействия с интерактивной картойyandex.ru у первой обработки (60 ) более прост:
(0)
Однако файлы формируемые примером (0) и открытые браузером — интерактивны:
(54) у меня до сих пор обработка работает, проблем нет