检查鼠标是否在标记Google Maps API上

时间:2016-03-16 10:06:22

标签: javascript google-maps google-maps-api-3

我正在使用带有Javascript的Google Maps API

我目前在initMap函数中有以下代码:

google.maps.event.addListener(map, 'mousemove', function (event) {
  currentPos = event.latLng;
  console.log(currentPos.lat() + " ... " + currentPos.lng());
});

当我右键单击地图区域时,会在该特定区域中调用某些方法。

但是当我将鼠标悬停在标记上(这是一个圆圈)时,currentPos仍然与鼠标移过圆圈之前保持一致。

即 - currentPos位于圆圈边界的某处,但我的鼠标悬停在圆圈内。

无论如何都有

  • 激活mousemove侦听器,即使将鼠标悬停在标记上,也可以
  • 识别鼠标悬停在标记

这可能会让我更容易。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

mousemove的{​​{1}}中触发map的{​​{1}} - 事件:



mousemove

circle

function initialize() {
  var map = new google.maps.Map(document.getElementById('map_canvas'), {
      zoom: 14,
      center: new google.maps.LatLng(52.5498783, 13.425209099999961)
    }),
    ctrl = document.createElement('code');
  map.controls[google.maps.ControlPosition.TOP_CENTER].push(ctrl);
  var circle = new google.maps.Circle({
    map: map,
    center: map.getCenter(),
    radius: 100,
    draggable: true
  });

  google.maps.event.addListener(map, 'mousemove', function(e) {
    ctrl.innerHTML = e.latLng.toUrlValue();
  });
  google.maps.event.addListener(circle, 'mousemove', function(e) {
    google.maps.event.trigger(this.getMap(), 'mousemove', {
      latLng: e.latLng
    })

  });
}

google.maps.event.addDomListener(window, 'load', initialize);