Вопрос

Когда нажатие маркера, мне нужно выполнить какой-то код, который находит id, соответствующий щелчке Marker, получает данные из Backend API, затем добавляет новые извлеченные данные на content всплывающего окна, который откроется.

.

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

map.on('popupopen', function(e){
    // How to retrieve marker?
    // eg: Assign an id on creation, retrieve it now during popupopen
};)
.

Как я могу узнать, какой маркер это?Можно ли добавить атрибут id каждому маркеру, затем извлеките этот генеракодицетагкод во время события id?

Это было полезно?

Решение

Объект события содержит атрибут «всплывающего», который имеет личный атрибут, называемый «_Source», который является объектом, который восквернут связан с (то есть маркером).Поскольку _source должен быть частным, это не похоже на правильный путь, но я не уверен, как еще сделать это.

map.on('popupopen', function(e) {
  var marker = e.popup._source;
});
.

Другие советы

Объекты JavaScript могут иметь какие-либо свойства, определенные на них.Установите Popup.marker на указанный маркер при создании всплывающего окна.Затем вы можете получить доступ к нему позже в обработчике событий.

Чтобы получить удостоверение личности маркера, вы можете использовать этот код:

map.on('popupopen', function(e) {
  var marker = e.popup._source.feature.properties.markerid;
});
.

Другие ответы не работали, но это делает:

map.on('popupopen', function(e) { alert(e.popup._source._popup._content); });
.

Угадай, что эта библиотека довольно нестабильная ... И я не уверен, что это сложно передавать такую информацию в первую очередь.<пожар>

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top