我需要獲取服務器端(用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