Google maps api 3 在地图的中心,用户只需平移几公里或几英里

Google maps api 3 在地图的中心,用户只需平移几公里或几英里,google-maps-api-3,Google Maps Api 3,我有一个以用户浏览器当前位置为中心的地图(如果用户允许共享他的位置) 我将展示“周围”的标记,我在想如何将平移限制在四周2公里(2公里只是一个例子,这个想法是为了不让用户离开中心太远) 我已经设置了一个缩放限制,这有一点帮助,但根本解决不了问题。您可以通过测量用户和标记位置之间的距离来解决这个问题,并且只打印特定半径内的标记(给出标记的圆形区域) 或者,您可以获取地图的边界并向坐标添加缓冲区,然后使用Google Maps几何体库中的containsLocation()打印位于矩形形成的多边形内

我有一个以用户浏览器当前位置为中心的地图(如果用户允许共享他的位置)

我将展示“周围”的标记,我在想如何将平移限制在四周2公里(2公里只是一个例子,这个想法是为了不让用户离开中心太远)


我已经设置了一个缩放限制,这有一点帮助,但根本解决不了问题。

您可以通过测量用户和标记位置之间的距离来解决这个问题,并且只打印特定半径内的标记(给出标记的圆形区域)


或者,您可以获取地图的边界并向坐标添加缓冲区,然后使用Google Maps几何体库中的containsLocation()打印位于矩形形成的多边形内的标记(给出一个矩形区域的标记。然后,您还可以测试缓冲区是否平移过去,并创建一个新的缓冲区,因此,只有当用户开始平移太远时,您才更新地图上的标记。

更多的是关于如何在四边设置2km的限制。添加缓冲区有点复杂。我设法获得了新的边界s设置为距离地图边界2公里处,用户位置位于其中心。问题是我无法在新边界+2公里处停止平移。有什么想法吗?我不确定,但如果您可以停止用户平移超过该缓冲区,我会非常惊讶。当到达缓冲区时,您可以将地图选项“Dragable”设置为false,但当到达缓冲区时,user无法向后平移。唯一想到的另一个选项是侦听Draged,如果它们拖得太远(例如,新中心不包含在用户位置周围2km的矩形内,因此模拟2km的示例缓冲区)您可以将中心重置为该矩形的最近边。他们可以拖动经过缓冲区,但会反弹回缓冲区。顺便说一句,我要向用户明确说明,您正在阻止他们进一步平移,因为他们可能会因为认为该站点工作不正常而非常恼火。最好的选择是裁剪地图并使用我最担心的是,每次用户通过一个php文件在数据库中检查该区域是否有标记的ajax请求时,如果有大量的流量,请求的数量可能会很高。