Клуб API Карт

Как изменить текст уже созданного Placemark

Пост в архиве.

Предположим, я делаю объект html select из нескольких объектов, перед этим на карту поместил Placemark.

Хочется, чтобы при событии change (к примеру) на select'е, была возможность изменить текст в Placemark в соответствии с текстом выбранной option.

 

То есть, грубо говоря, человек выбирает объект, ему на карте отображается текст этого объекта, дальше он двигает его, чтобы поместить в нужную точку и нажимает сохранить. Но это уже другая тема..

 

Вопрос лишь в том – как изменить iconContent в Placemark..

 

Я пробовал placemark.properties, где iconContent вроде что-то похожее на поле – но ничего путного не вышло..

API определяет события, реагирующие на изменения.. Но что-то не нашёл я где эти изменения можно вообще вызвать..

 

Спасибо, люди! :)

Вот код (ответ пометил жирным) – спасибо =)

<select name="obj" onchange="placemark.properties.set('iconContent', document.getElementById('obj-' + this.value).innerHTML)">
  <option id="obj-1" value="1">Первая</option>
  <option id="obj-2" value="2">Вторая</option>
</select>
...
<script type="text/javascript">

  ...
  placemark = new ymaps.Placemark([59.76, 30.14], { hintContent: ''}, { draggable: 'true' });
</script>
8 комментариев
Андрей Грэй
28 января 2016, 02:45

для перемещения свойство draggable: true - и таскайте куда хотите. забиндить это можно на что угодно по нажатию клавиши, или по onchange. это уже не к апи относится.

 

что касается назначения содержимого метки.

mySuperPlacemark.properties.set('iconContent','моя супер иконка');'

О! Спасибо =) Именно это я и искал!!!

Андрей Грэй
28 января 2016, 02:45

вместо hintContent:'' - hasHint:false, будет вернее

Я там текст всё же добавил, что-то вроде "Перетащите указатель" ))))

Дмитрий С.
28 января 2016, 02:45

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

Типа:

var mymap = saved_maps[ нужный индекс ];

var placeMarkers = mymap. ... ?

ну и далее типа:

for each (placeMarkers as placeMarker) {

   placeMarker.prperties.set('iconContext', 'что-то там ...')

}

 

 

А есть ли необходимость как-то преобразовывать тип GeoObject к типу Placemark?

нет. Placemark — это GeoObject, у которого указана geometry.Point

 Placemark:

Расширяет GeoObject.

Метка. Представляет собой геообъект с геометрией geometry.Point.