Google maps Google Maps V3:鼠标xy位置,用于在标记上单击自定义弹出窗口,来自LatlngToContainerPixel

Google maps Google Maps V3:鼠标xy位置,用于在标记上单击自定义弹出窗口,来自LatlngToContainerPixel,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我想在点击一个标记的时候做我自己的js弹出窗口。 因为我在API中没有发现任何与此相关的内容,所以我只是 思考 获取鼠标的xy位置,然后“绘制”我的div 找到以下示例: 但是当我执行console.log(marker.getPosition())时,它总是0,0 任何人都有自己的自定义弹出窗口,可以给我一个如何做的提示 这 我应该使用“fromLatLngToContainerPixel”还是其他 优雅的方式 下面是一些代码_spots是一个json对象 for (var i = 0;

我想在点击一个标记的时候做我自己的js弹出窗口。 因为我在API中没有发现任何与此相关的内容,所以我只是 思考 获取鼠标的xy位置,然后“绘制”我的div

找到以下示例:

但是当我执行console.log(marker.getPosition())时,它总是0,0

任何人都有自己的自定义弹出窗口,可以给我一个如何做的提示 这 我应该使用“fromLatLngToContainerPixel”还是其他 优雅的方式

下面是一些代码_spots是一个json对象

  for (var i = 0; i <= _spots.length; i++) {

      var myLatLng = new google.maps.LatLng(_spots[i].lat, _spots[i].long);
      var spotMarker = new google.maps.Marker({
          position: myLatLng,
          map: map, 
          title: _spots[i].name,
          animation: google.maps.Animation.DROP,
          icon: image,
          street: _spots[i].street,
          zipcode: _spots[i].zipcode,
          info: _spots[i].info,
      });

      markersArray.push(spotMarker);

        google.maps.event.addListener(spotMarker, 'click', function() {
            console.log(this);

            alert(spotMarker.getPosition());          // -> at this point I get 0,0
            var projection = overlay.getProjection(); 
            var pixel = projection.fromLatLngToContainerPixel(spotMarker.getPosition());
            console.log(pixel);

        });     
 }
for(var i=0;此时我得到0,0
var projection=overlay.getProjection();
var pixel=projection.fromLatLngToContainerPixel(spotMarker.getPosition());
控制台日志(像素);
});     
}
致以最良好的祝愿, sv

…以访问单击的标记


spotMarker将始终返回相同的标记(已创建的最后一个标记)

marker.getPosition不应返回坐标,而应返回一个google.maps.latLng。你能发一些代码吗?有时(我遇到了这种情况),除非显式地设置position(),否则标记将返回未定义的getPosition。看到这个了吗
for (var i = 0; i <= _spots.length; i++)
for (var i = 0; i < _spots.length; i++) 
alert(this.getPosition());