我需要获取服务器端(用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. 谷歌地图设置界限缩放级别
- 5. 谷歌地图KM边界框在地图上重新应用本地缩放
- 6. mapbox-gl:从中心点,缩放级别和尺寸计算地图边界
- 7. 谷歌地图上的kml文件中的缩放级别
- 8. 如何获得谷歌地图缩放级别为23
- 9. 谷歌地图 - 如何设置缩放级别
- 10. 在谷歌地图上设置适当的缩放级别
- 11. 谷歌地图:缩放和平移主视口中的子边界框
- 12. 在谷歌Android地图中自动设置缩放级别
- 13. 在谷歌地图android中动态设置缩放级别
- 14. 谷歌地图API V3:无论缩放级别如何设置相同的平移边界
- 15. Google地球从边界框确定缩放级别
- 16. 如何根据缩放计算圆半径谷歌地图api
- 17. 缩放级别限制了我的谷歌地图iOS应用
- 18. 谷歌地图Android应用程序的更大缩放级别
- 19. 谷歌地图的缩放级别迁移V2至V3
- 20. 带TileProvider的谷歌地图:缩放时的不同缩放级别
- 21. 谷歌地图标记锚远在缩放级别
- 22. 此Google地图缩放级别计算如何工作?
- 23. 如何为世界地图创建不同的缩放级别
- 24. 计算谷歌地图瓦片边界坐标
- 25. 如何计算Android地理编码结果的缩放级别
- 26. 谷歌地图v3 - 限制可视区域和缩放级别
- 27. 谷歌地图API 3:缩放级别动态圈
- 28. 谷歌地图缩放级别为国家
- 29. Mvvmcross Android谷歌地图,无法绑定缩放级别
- 30. 谷歌地图点不会出现,直到低缩放级别
但是,你怎么做缩放? – elvenbyte 2011-06-21 15:11:32