Richmarker点击google maps js api v3获取event.LatLng

时间:2016-01-03 15:19:53

标签: javascript google-maps-api-3

我将here所述的修补程序应用于richmarker.js

一旦我使用

Uncaught TypeError: Cannot read property 'Person' of undefined

我需要的是在onclick函数中获得my_rich_marker.addListener('click', function(event) { console.log(event); //undefined } richmarker,就像使用常规标记一样。

2 个答案:

答案 0 :(得分:0)

传递给RichMarker的“click”事件的事件参数是来自浏览器的本机点击事件的参数,该事件没有.latLng属性。

来自the RichMarker source

var that = this;
google.maps.event.addDomListener(this.markerContent_, 'click', function(e) {
  google.maps.event.trigger(that, 'click', e);
});

您有两种选择:

  1. 修改RichMarker库,将latLng属性添加到返回的事件中。

  2. 从浏览器的本机点击事件中可用的属性计算关联的latLng。

  3. 将返回事件的latLng属性设置为this.getPosition()(基于Dr.Molle的回答):

    google.maps.event.addListener(my_rich_marker, 'click', function(event) {
      event.latLng = this.getPosition();
      console.log(event.latLng.toUrlValue()); 
    }
    

答案 1 :(得分:0)

如果你真的想要它 就像使用常规标记一样

当您点击常规标记时,该事件的latLng - 属性等于标记的position

所以你要做的就是检索RichMarker的position

google.maps.event.addListener(my_rich_marker,'click',function(e){
  console.log(this.getPosition());
});