Richmarker получить событие.LatLng по клику Google Maps JS API V3
Я применил исправление, как описано здесь, к richmarker.js
Как только я использую
my_rich_marker.addListener('click', function(event) {
console.log(event); //undefined
}
Что мне нужно, это получить event.latLng
RichMarker внутри функции onclick, как это работает с обычным маркером.
2 ответа
Когда вы действительно хотите, чтобы это работало с обычным маркером:
Когда вы нажимаете на обычный маркер latLng
-свойство события равно position
маркера.
Так что все, что вам нужно сделать, это получить position
RichMarker:
google.maps.event.addListener(my_rich_marker,'click',function(e){
console.log(this.getPosition());
});
Аргумент события, передаваемый в событие "click" для RichMarker, является аргументом из родного события click браузера, которое не имеет .latLng
имущество.
var that = this;
google.maps.event.addDomListener(this.markerContent_, 'click', function(e) {
google.maps.event.trigger(that, 'click', e);
});
У вас есть два варианта:
измените библиотеку RichMarker, чтобы добавить свойство latLng к возвращаемому событию.
рассчитать связанный latLng из свойств, доступных в родном событии щелчка браузера.
установить свойство latLng возвращаемого события в
this.getPosition()
(основываясь на ответе доктора Молле):google.maps.event.addListener(my_rich_marker, 'click', function(event) { event.latLng = this.getPosition(); console.log(event.latLng.toUrlValue()); }