|
Проблема с ID точки (метки) СДЭК на яндекс-картах | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
05.06.22
✎
19:37
|
Аналогична вот этой теме: Как получить координаты метки в Яндекс-карте?
Там ответа не нашлось, может тут найдется? Вот код yandex-меток: ymaps.ready(init); function init () { var myMap = new ymaps.Map("map", { center: [56.735323, 37.1556315], zoom: 10 }, { searchControlProvider: 'yandex#search' }) , myPlacemark1 = new ymaps.Placemark([56.74146, 37.170678], { balloonContentHeader: "СДЭК", balloonContentBody: "На Понтекорво", balloonContentFooter: "", hintContent: "На Понтекорво", iden:"DBN4" }) , myPlacemark2 = new ymaps.Placemark([56.729186, 37.140585], { balloonContentHeader: "СДЭК", balloonContentBody: "На Боголюбова 44", balloonContentFooter: "", hintContent: "На Боголюбова 44", iden:"DBN5" }) ; myMap.geoObjects.add(myPlacemark1),myMap.geoObjects.add(myPlacemark2); } В поле HTML-документа в 1С ловлю событие ПриНажатии, но ДанныеСобытия.Button.ID - пустое. Как пролечить? |
|||
1
Бабрак Кармаль
05.06.22
✎
19:41
|
Прочитать https://yandex.ru/dev/maps/jsbox/2.1/geoobject_events, добавить обработчик, который будет вызывать клик с необходимыми тебе данными.
Вперед. Мы в тебя верим. |
|||
2
Гений 1С
гуру
05.06.22
✎
19:47
|
вернее id там есть, но он странный. id_1654445865445849110082
Впрочем из innerHTML элемента можно вытащить вот это (т.е. содержимое: <ymaps><ymaps class="ymaps-2-1-79-balloon-content__header">СДЭК</ymaps>На Боголюбова 44</ymaps> (1) как-то чересчур сложно.. мы пойдем другим путем |
|||
3
Бабрак Кармаль
05.06.22
✎
19:48
|
(2) > чересчур сложно.. мы пойдем другим путем
Даже не сомневался. Не забудь написать статью про свой колхоз. |
|||
4
Гений 1С
гуру
05.06.22
✎
19:54
|
(3) колхоз не мой, а Яндексовый
|
|||
5
Гений 1С
гуру
05.06.22
✎
19:56
|
(3) https://kakorin.com/blog/svyazat-metki-yandex-kart-so-spiskom что-то типа этого, гм
|
|||
6
Гений 1С
гуру
05.06.22
✎
20:12
|
Попробовал вот так - алертует:
unction init () { var myMap = new ymaps.Map("map", { center: [56.735323, 37.1556315], zoom: 10 }, { searchControlProvider: 'yandex#search' }) , myPlacemark1 = new ymaps.Placemark([56.74146, 37.170678], { balloonContentHeader: "СДЭК", balloonContentBody: "На Понтекорво", balloonContentFooter: "", hintContent: "На Понтекорво", iden:"DBN4" }) , myPlacemark2 = new ymaps.Placemark([56.729186, 37.140585], { balloonContentHeader: "СДЭК", balloonContentBody: "На Боголюбова 44", balloonContentFooter: "", hintContent: "На Боголюбова 44", iden:"DBN5" }) ; myMap.geoObjects.add(myPlacemark1),myMap.geoObjects.add(myPlacemark2); myPlacemark1.events.add('click' , function(e){ alert(myPlacemark1.properties.get('iden')); }); } |
|||
7
Гений 1С
гуру
05.06.22
✎
20:13
|
(2) хотя нет, это если по балуну щелкнешь, ладно, реанимирую как-нибудь один проект, там была привязка ID, гляну.
Но если кто знает, свистите |
|||
8
Гений 1С
гуру
06.06.22
✎
14:57
|
Выложил за вознаграждение 3 СМ: https://forum.infostart.ru/forum9/topic282387/
|
|||
9
Конструктор1С
06.06.22
✎
15:48
|
(4) читай документацию, а не лепи костыли
|
|||
10
Гений 1С
гуру
06.06.22
✎
20:35
|
уфф, вроде получилось, боюсь спугнуть удачу, счас опубликую
|
|||
11
Гений 1С
гуру
06.06.22
✎
20:52
|
(1) Пришлось все же по твоему методу идти. Вот итоговый код:
ymaps.ready(init); function init () { var myMap = new ymaps.Map("map", { center: [56.735323, 37.1556315], zoom: 10 }, { searchControlProvider: 'yandex#search' }) , myPlacemark1 = new ymaps.Placemark([56.74146, 37.170678], { balloonContentHeader: "СДЭК", balloonContentBody: "На Понтекорво", balloonContentFooter: "", hintContent: "На Понтекорво", iden:"DBN4" }) , myPlacemark2 = new ymaps.Placemark([56.729186, 37.140585], { balloonContentHeader: "СДЭК", balloonContentBody: "На Боголюбова 44", balloonContentFooter: "", hintContent: "На Боголюбова 44", iden:"DBN5" }) ; myMap.geoObjects.add(myPlacemark1),myMap.geoObjects.add(myPlacemark2); myPlacemark1.events.add('click' , function(e){ var evt = document.createEvent('MouseEvents'); evt.initEvent('click', true, false ); evt.data = myPlacemark1.properties.get('iden'); document.dispatchEvent(evt); }); myPlacemark2.events.add('click' , function(e){ var evt = document.createEvent('MouseEvents'); evt.initEvent('click', true, false ); evt.data = myPlacemark2.properties.get('iden'); document.dispatchEvent(evt); }); } Ну и в 1С: &НаКлиенте Процедура дор_ЯндексКартаПриНажатииПосле(Элемент, ДанныеСобытия, СтандартнаяОбработка) Если ЗначениеЗаполнено(ДанныеСобытия.Event.data) Тогда //Осипов Яндекс-карты 2022-06-05 КодПункта = ДанныеСобытия.Event.data; //Пример: "DBN5" КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |