我目前正在開發一個Android應用程序,在地圖上「模擬」一個鼠標(帶指針)。我已經實現了pad,它可以在地圖圖層上移動指針(一個簡單的小視圖)。現在我需要創建addMarker功能。我擁有的是:Android:從像素座標獲取經度/緯度
- (x,y)以像素爲單位的指針座標(或在dip中);
- 寬度和高度貼圖屬性。
我的問題是:我怎樣才能計算被指針觸及的點的緯度/經度?非常感謝!
我目前正在開發一個Android應用程序,在地圖上「模擬」一個鼠標(帶指針)。我已經實現了pad,它可以在地圖圖層上移動指針(一個簡單的小視圖)。現在我需要創建addMarker功能。我擁有的是:Android:從像素座標獲取經度/緯度
我的問題是:我怎樣才能計算被指針觸及的點的緯度/經度?非常感謝!
,你可以這樣做:
Projection myProjection = myMap.getProjection()
返回,您可以使用 座標和緯度/經度座標屏幕之間進行轉換投影對象。
返回的投影是當前投影的快照,並且 在相機移動時不會自動更新。由於此操作 非常昂貴,因此每個屏幕只能顯示一次投影。 Google地圖使用墨卡託投影從 地理數據創建地圖,並將地圖上的點轉換爲地理座標 。
然後:
LatLng markerPosition = myProjection.fromScreenLocation(pointerPosition);
返回對應於一個屏幕位置的地理位置。 相對於地圖左上角(而不是整個 屏幕的左上角),屏幕像素(不是顯示像素) 中指定了屏幕位置。
參數: point屏幕像素點上的點。
返回:對應於屏幕上的點的經緯度 或null如果射線 通過給定的屏幕點不相交地平面 (如果映射是嚴重傾斜,這可能是這種情況)。
謝謝,這是完美的!這一直是我的錯,因爲我的代碼錯誤,通過錯誤的點座標! – JohnEisenheim
如果是真實地圖,您應該可以在GoogleMap上獲得點擊位置 – Eenvincible
Hi @Eenvincible,感謝您的回覆!是Android地圖視圖,我無法使用我的設備,因爲我應該使用指針! – JohnEisenheim