Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在谷歌地图区域中单击自定义覆盖,然后放大_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 在谷歌地图区域中单击自定义覆盖,然后放大

Javascript 在谷歌地图区域中单击自定义覆盖,然后放大,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,因此,我尝试在地图上绘制网格线,并在google api文档中找到了一个很好的示例: 它可以工作,现在我在网格线构建的每个区域或矩形中都有另一个问题,我希望它们在单击事件上有一个侦听器,然后缩放到已单击的区域。我试过这样做 google.maps.event.addListener(map, "click", function (e) { var latLng = e.latLng; map.setCenter(new google.maps.LatLng(latLng.lat(

因此,我尝试在地图上绘制网格线,并在google api文档中找到了一个很好的示例:

它可以工作,现在我在网格线构建的每个区域或矩形中都有另一个问题,我希望它们在单击事件上有一个侦听器,然后缩放到已单击的区域。我试过这样做

google.maps.event.addListener(map, "click", function (e) {
    var latLng = e.latLng;
    map.setCenter(new google.maps.LatLng(latLng.lat(), latLng.lng()));
    map.setZoom(17);
});

它也可以,但是正如你所看到的,经纬度是光标/指针点击的确切位置,它不在矩形或区域的中间,这意味着放大后的地图是错误的。有人能帮我解决这个问题吗?

我想问题是因为您使用的是叠加(作为网格线),当使用平铺叠加时,Google Maps API将每个缩放级别的图像分解为一组排列在网格中的方形地图平铺。当地图移动到新位置或新的缩放级别时,“地图API”将确定需要哪些分幅,并将该信息转换为要检索的分幅集

例如,每个缩放级别将放大率增加两倍。因此,在缩放级别1,贴图将渲染为2x2的分幅栅格。在缩放级别2,它是一个4x4栅格。在缩放级别3,它是8x8栅格,依此类推

<>当你放大时,你点击的坐标并不总是在中间,因为你的坐标没有设置覆盖层。 有关覆盖的更多信息,请选中此项

您还可以查看此项以了解更多信息