0

再一次,我对 Google Map 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 *当前设置为缩放的唯一多边形是多边形 1 - 地图顶部的蓝色形状。

我已经在 Firefox(23)、IE(9) 和 Chrome(16) 上对其进行了测试,结果都相同。

4

1 回答 1

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);
});

工作示例

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

于 2012-12-04T17:43:33.890 回答