再一次,我对谷歌地图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)上都测试了它们都有相同的结果。
答案 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);
});
请注意,这种方法不是很可扩展(我建议创建一个获取多边形数据的函数,完成所有这些操作,然后将引用推送到数组中供以后使用)。