我有一個棘手的問題......我使用谷歌地圖靜態API來創建一個帶有標記的地圖的圖像。我正在努力做的是計算適當的縮放級別,給定我想要顯示的兩個標記的位置。如何計算適當的谷歌地圖縮放級別
我有緯度A,經度A,緯度B,經度B和中心點(簡單)。有誰知道解決縮放級別的公式?
謝謝!
我有一個棘手的問題......我使用谷歌地圖靜態API來創建一個帶有標記的地圖的圖像。我正在努力做的是計算適當的縮放級別,給定我想要顯示的兩個標記的位置。如何計算適當的谷歌地圖縮放級別
我有緯度A,經度A,緯度B,經度B和中心點(簡單)。有誰知道解決縮放級別的公式?
謝謝!
即使你使用的是靜態的地圖API,你仍然可以參考正規的地圖腳本文件,然後做一個邊界框計算:
map = new GMap2(document.getElementById("map"));
// Define the two corners of the bounding box
var sw = new GLatLng(59.0, 13.12); //any lat,lng pair
var ne = new GLatLng(60.35, 16.90);
var bounds = new GLatLngBounds(sw, ne);
var zoom = map.getBoundsZoomLevel(bounds));
我花了3個靜態地圖的水平11,12和13,並使用Google地圖的「地圖實驗室」功能,按住相應的最小/最大緯度/經度標記處的Shift鍵。然後,我編寫了一個Perl程序來計算緯度/經度範圍,預期值(通過檢查數據預測的公式)和三角洲(即abs(預期 - 範圍)),這應該接近於零。 有一次,我相信自己,我已經得到了儘可能靠近我可以,這裏是我的結果:
Z11: LatRange[0.323999] ExpLat[ 0.324] DeltaLat[ 0.0000000000000019]
Z11: LonRange[0.439999] ExpLon[ 0.44] DeltaLon[ 0.0000000000000023]
Z12: LatRange[0.161999] ExpLat[ 0.162] DeltaLat[ 0.0000000000000010]
Z12: LonRange[0.219999] ExpLon[ 0.22] DeltaLon[ 0.0000000000000011]
Z13: LatRange[0.081000] ExpLat[ 0.081] DeltaLat[ 0.0000000000000031]
Z13: LonRange[0.109999] ExpLon[ 0.11] DeltaLon[ 0.0000000000000006]
我使用的公式爲:
ExpLat = 0.162 * (2 ** (12 - Z))
ExpLon = 0.220 * (2 ** (12 - Z))
凡ExpLat,ExpLon是預期的緯度和經度範圍,Z是縮放級別。
好的回答golux。 – 2012-09-16 18:27:33
在技術上,我不使用地圖api,我試圖做的是獲取地圖圖像嵌入到電子郵件中。沒有辦法做到這一點(數學)沒有使用GMap調用? – TomBomb 2012-04-04 02:33:04
你使用任何類型的編程語言來計算這個,或者你只是試圖從某個地方複製/粘貼鏈接? – javram 2012-04-04 02:57:53
從技術上講,這是在PHP中,但我試圖得到一個適當的靜態谷歌地圖鏈接,如: 「http://maps.googleapis.com/maps/api/staticmap?center=centerLat,centerLng&zoom=zoomLevel&size=widthxheight&maptype =路標&標記=顏色:綠%7Clabel:P%7CLat1,Long1&標記=顏色:紅%7Clabel:d%7CLat2,Long2&傳感器=假「; – TomBomb 2012-04-04 03:12:40