我需要获取服务器端(用java编码)中的边界框的谷歌地图缩放级别的任何想法?如何计算谷歌地图在java中的边界框的缩放级别
2
A
回答
1
谷歌地图通过运行在客户端(浏览器内)的JavaScript库使用。在服务器端你无能为力。
但是,您可以查看JavaScript(在客户端)的边界框大小并相应地设置缩放级别。
我很好奇:你在服务器端的谷歌地图做什么?
6
@Peter实际上,您可以在服务器端使用Java进行一些操作。你可以计算出从你的边界框的最小和最大纬度/经度值,然后使用下面的代码:
int zoomLevel;
double latDiff = latMax - latMin;
double lngDiff = lngMax - lngMin;
double maxDiff = (lngDiff > latDiff) ? lngDiff : latDiff;
if (maxDiff < 360/Math.pow(2, 20)) {
zoomLevel = 21;
} else {
zoomLevel = (int) (-1*((Math.log(maxDiff)/Math.log(2)) - (Math.log(360)/Math.log(2))));
if (zoomLevel < 1)
zoomLevel = 1;
}
这很适合我的Square谷歌地图的320x320像素,与ZOOM_SCALING_FACTOR = 0.3838。这个公式应该适用于任何Google地图。你看到log_2被使用的原因是,每当缩放级别增加1时,Google地图的尺寸会加倍。我还处理点彼此几乎一致的边缘情况(zoomLevel = 21),以及整个地球的位置是所需的缩放(zoomLevel = 1)。
做这个服务器端的好处是,你已经释放你的JavaScript引擎做复杂(可能是浪费)的数学,这可能会减慢页面加载和恶化用户体验。
+0
谢谢你干得好。 – Blamkin86 2015-12-08 22:13:38
相关问题
- 1. 如何计算适当的谷歌地图缩放级别
- 2. 谷歌地图:如何计算“双倍”缩放级别?
- 3. 计算地图上的高度给定缩放级别在谷歌地图
- 4. 如何在wordpress中增加谷歌地图的缩放级别
- 5. 缩放级别 - 谷歌地图,国家
- 6. 谷歌地图半径缩放级别
- 7. 谷歌地图缩放级别
- 8. 在C#中计算谷歌地图控件上的缩放级别#
- 9. 如何在谷歌地图中设置缩放级别
- 10. 谷歌地图设置界限缩放级别
- 11. Overring在谷歌地图的地图缩放级别ExpressionEngine
- 12. mapbox-gl:从中心点,缩放级别和尺寸计算地图边界
- 13. 谷歌地图KM边界框在地图上重新应用本地缩放
- 14. 在缩放级别3的谷歌地图中隐藏标记
- 15. 谷歌地图上的kml文件中的缩放级别
- 16. 如何解决谷歌地图缩放级别问题android
- 17. 谷歌地图 - 如何设置缩放级别
- 18. 如何获得谷歌地图缩放级别为23
- 19. 在谷歌地图上设置适当的缩放级别
- 20. 谷歌地图:缩放和平移主视口中的子边界框
- 21. 在谷歌地图android中动态设置缩放级别
- 22. 在谷歌Android地图中自动设置缩放级别
- 23. 在谷歌地图中设置自定义缩放级别
- 24. 谷歌地图覆盖图在某些缩放级别消失
- 25. 谷歌地图API V3:无论缩放级别如何设置相同的平移边界
- 26. 如何在谷歌地图中设置25公里的缩放级别?
- 27. Google地球从边界框确定缩放级别
- 28. 如何根据缩放计算圆半径谷歌地图api
- 29. 谷歌地图 - 缩放级别为1-4的自定义地图图块,然后是默认的谷歌地图图块其他缩放级别
- 30. 谷歌地图绘制多边形并缩放到其界限
但是,你怎么做缩放? – elvenbyte 2011-06-21 15:11:32