Google Map API v3'点击'活动仅在双击时才有效?

时间:2012-12-03 19:01:47

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

再一次,我对谷歌地图API v3有一个奇怪的小问题。我确信我已经看了一些容易的东西,但在寻找了几个小时的答案之后,我已经准备好寻求帮助了。

我有一个多边形形状,我终于想出如何放大一个点击...除了现在而不是一次点击放大多边形,它需要双击。令我困惑的是脚本只需单击即可。以下是我所指的脚本部分:

    // Add a listener for the click event
  google.maps.event.addListener(zone1, 'center_changed', function() {     
      window.setTimeout(function() {
          map.panTo(marker.position());
      }, 1000);
  });

  google.maps.event.addListener(zone1, 'click', function() {
      map.setCenter(marker.position(29.737, -95.394),
      map.setZoom(18)
      );
  });

以下是指向工作页面的链接:http://www.conleym.com/map/google_maps_code_9_zoom.html *当前设置为缩放的唯一多边形是polygon1 - 地图顶部的蓝色形状。

我在FF(23),IE(9)和Chrome(16)上都测试了它们都有相同的结果。

1 个答案:

答案 0 :(得分:1)

我假设您希望地图缩放到多边形的“边界”(以显示整个多边形)。在这种情况下,你可以做这样的事情(对于每个区域);并删除多边形上的“center_changed”侦听器:

zone1._myBounds = new google.maps.LatLngBounds();
for (var i=0; i<triangleCoords.length; i++)
{
   zone1._myBounds.extend(triangleCoords[i]);
}

google.maps.event.addListener(zone1, 'click', function () {
  map.fitBounds(zone1._myBounds);
});

working example

请注意,这种方法不是很可扩展(我建议创建一个获取多边形数据的函数,完成所有这些操作,然后将引用推送到数组中供以后使用)。