当前位置: 首页 > 知识库问答 >
问题:

谷歌地图在地球的“边缘”平移

吕胤
2023-03-14

还有人发现谷歌地图(现在)允许你平移到两极之外有问题吗?它曾经停在两极,对吗?

每次用户平移或缩放地图时,我正在工作的一个站点都会在我们的服务器上执行基于位置的查询。这会导致错误,因为用户从地图边缘平移触发的查询是荒谬的。

现在,可以说,我正在服务器端处理edge案例,但在客户端这不是一个很好的用户体验。有没有人有防止过度平移的解决方案?

谢谢

共有2个答案

解鸿运
2023-03-14

由于我遇到了同样的问题,并且只接受级别2的目标缩放(示例中的其他缩放级别失败),我试图找到一个公式,但没有成功,所以我硬编码了前8个缩放级别的值。显然,这可以扩展为一个完全有效的示例,但我认为这对于99%的情况来说已经足够了。

JSFIDLE此处

我还添加了另一个侦听器,使其工作得更好。

google.maps.event.addListener(map, 'zoom_changed', function() {
      checkBounds();});
程沛
2023-03-14

避免灰色区域的一种方法是限制用户的平移,下面的示例是“范围限制”;但是,它是为版本2编写的。

http://econym.org.uk/gmap/range.htm

让它在版本3中工作很简单,http://jsfiddle.net/44e6y/9/但也有缺点:

  • 它依赖于地图的中心在一个盒子里,所以
  • 放大将进一步限制可视区域(如果您对极点不感兴趣,没关系,但您可以拥有用于各种缩放的LatLngBound数组,这成为查看格陵兰岛的必要条件)
  • 作为最后一点的结果,我强制JSFiddle iframe大小的最小缩放为2。如果地图将占用整个屏幕,则最小缩放可能会更高,以避免显示灰色区域。一般来说,最小缩放越高,行为越可预测。
 类似资料:
  • 我想用多边形类和一组lat/lng坐标在谷歌地图上画一个城区区域。 OpenStreetMap为我提供了所需的所有数据——如果我键入一些地区名称,我可以获得OSM XML格式的有用数据,例如拉脱维亚里加“Vecmilgravis”地区的OSM绘制多边形,以及OSM XML格式的数据。 问题是所有这些节点都是按某种奇怪的顺序排序的,因此如果我只提取所有和对,并为Google Maps多边形类创建一个

  • 我用谷歌地球创建了一个kml文件,它使用外部图像创建了一个覆盖层。它工作得很好,我想找到一种相当方便的转换kml的方法,这样谷歌地图就可以以类似的方式读取和显示它。 谷歌地图不能处理谷歌地球坐标,所以我试图自己转换它们。例如,我替换了地球坐标: 使用等效地图坐标: 不幸的是,两者并不完全“对等”。“地图覆盖”稍微关闭,旋转不正确。 以下是两张照片: 地球实例 地图示例 我明白为什么它不起作用,但我

  • 我有一个带有InfoBoxes的谷歌地图。infoBox有一个功能,可以在显示后更改infoBox的大小。 但是,当内容大于最初显示的内容时,这会导致infoBox流出地图。是否有方法调用infoBox panBox功能,以便infoBox在地图中再次自我修改,就像打开时一样? 单击infobox查看问题 我的代码示例,因为我不允许在没有一些代码的情况下显示小提琴:)

  • 所以我看到了一个特殊的例外,我敢肯定的是谷歌地图的绘图代码。 我有一个片段,在那里我以编程方式添加了一个支持地图片段,然后我在其中操纵谷歌地图实例。 这是stacktrace: 我无法可靠地复制它(尽管这种情况经常发生),我已经查看了ReadWriteDirectByteBuffer和ShortToByteBufferAdapter,但没有任何东西突然出现在我面前。 有什么想法吗?

  • 我认为问题是我需要添加构建提示。我可以找到在哪里添加他们,但我不确定他们应该是什么格式。我也不知道要补充什么。我想我发现了一个帖子,说我需要添加Android.xapplication=Android:value=“Your Key”/>Android.xPermissions= 但我不确定构建提示条目表单中的格式是什么

  •        LSV默认的对谷歌影像进行了加载,如果需要加载其他的谷歌地图数据,可以通过LSV中直接点击即可加载。