谷歌地图区域中的自定义叠加层单击然后放大
Custom overlay in google maps area clicked then zoom in
所以我试图在地图上画网格线,我在谷歌 api 文档中找到了一个很好的例子: https://developers.google.com/maps/documentation/javascript/examples/maptype-base
它可以工作,现在我在网格线构建的每个区域或矩形中都有另一个问题,我希望他们在单击事件中有一个侦听器,然后缩放到已单击的区域。我试过这样
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 网格,依此类推。
因此,当您放大时,您单击的坐标并不总是位于中间,因为由于您的坐标而未设置切片叠加。查看此页面以获取有关叠加的更多信息。
您还可以查看此 SO 问题以获取更多信息。
相关文章:
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 复选框,然后单击事件处理
- 单击禁用表单按钮,然后提交表单
- 单击时预置图像 - 仅预置一次,然后停止
- 角度 js - 如何用鼠标单击,然后在 ng-grid 上按 Enter 键
- 单击从一张图像切换到两张图像,然后再切换回一张图像
- 单击“选择标签”中的“选项”时创建,然后选中“值”创建输入
- 将单击事件附加到按钮或链接上的类,该按钮或链接会触发 AJAX 帖子,然后延迟并继续原始操作
- 加载时可以单击按钮#1,然后需要单击按钮#2两次.按钮#1也需要点击两次
- 值首先发布,然后只有它完成输入(如果单击).向后需要(代码是corect)
- 选择其中一个单选按钮,然后单击“提交”,重定向其他页面
- 我想用jQuery向上滑动当前内容,然后向下滑动单击的内容
- JS将复选框中的值添加到URL,然后单击转到URL
- 单击一个按钮10次,然后重新加载页面
- 单击链接时执行异步AJAX调用,然后跟随该链接
- 在表中创建带有输入的新行,然后单击保存该输入的值
- 单击按钮然后弹出一个对话框然后提交按钮
- 我是否可以在单击特定图标时更改地图标记图标,然后在单击另一个图标时切换,等等
- 谷歌地图区域中的自定义叠加层单击然后放大
- 如何提交单个表单并使用两个提交按钮一个按钮单击然后验证