2015-11-24 103 views
0

我是stackoverflow的新手;注意到它對很多人都有幫助,所以我想我會自己嘗試一下。如何刪除最近的地圖標記Google地圖API

我正在爲Android設計一個項目。

它的要點如下:用戶生成一個地圖,其中標記是以設置的半徑隨機生成的,而當前位置是原點。用戶然後必須「收集」每個虛擬物體,此時遊戲將結束並返回到主菜單。很簡單的概念。

我的問題:如何根據用戶的當前位置刪除標記?換句話說,我如何讓標記對用戶的位置做出反應,以便在用戶距離他們一定距離內時分別從地圖中移除標記?我在網上看了一下,發現這個網站上有一些關於計算距離的東西,但沒有關於根據距離去除標記的問題。

任何幫助表示讚賞。此外,對我的禮儀的批評也被接受;我不熟悉如何在這裏提問。

謝謝。

回答

0

你應該提供你試圖尋求幫助的東西。您是否在地圖上實現了顯示標記?

您需要註冊位置更新以使您的應用知道位置更改。詳細信息:http://developer.android.com/training/location/receive-location-updates.html

每次提供位置更新時,都會觸發一個名爲onLocationChanged(Location userLocation)的方法。您應該使用此信息進行距離計算。

遍歷標記列表並檢查每個標記的距離。

這裏有一個方法,從鳥瞰計算兩個位置之間的距離:

public float getDistance(double startLat, double startLong, double goalLat, double goalLong) 
{ 
    float[] resultArray = new float[1]; 
    Location.distanceBetween(startLat, startLong, goalLat, goalLong, resultArray); 
    return resultArray[0]; 
} 

您的標記對象有一個remove()方法。刪除那些更接近用戶當前位置的內容。