我有如下所示它由經緯度對象的ArrayList:比較兩個在谷歌地圖V2 LatLng對象機器人
ArrayList <LatLng> latLngList = new ArrayList<LatLng>();
注:經緯度是具有在雙格式即緯度和經度值的對象,緯度是在雙格式和經度是在雙格式
的下面是它們被存儲在上述latLngList對象中的值:
Lat Long List:[lat/lng: (34.072516,-118.403609), lat/lng: (34.074227,-118.399248), lat/lng: (34.07304,-118.3995), lat/lng: (34.07304,-118.3995), lat/lng: (34.07304,-118.3995), lat/lng: (34.067856,-118.401485)]
現在,由於我在android中處理谷歌地圖v2,每當我點擊一個特定的標記時,我都會獲得經緯度位置,我嘗試將它與latLngList對象進行比較,以查找對象是否存在在latLngList。
我這樣做以下列方式:
for(LatLng latLng : latLngList) {
marker.getPosition().equals(latLng); **Always returns false**
}
標記位置返回我有以下的latLng對象:
lat/lng: (34.074226888265116,-118.39924816042185)
顯然,緯度和經度對象通過返回標記有點冗長,因此比較失敗。
有沒有更好的比較latLng對象的方法?
成千上萬的點可能需要很長的時間 – 2014-03-14 14:40:49
您可以通過距離標記位置的距離來訂購ArrayList。只是實現Comparable接口,所以ArrayList的第一項是最接近的一個。 – jgonza73 2014-03-25 12:14:48
什麼?每次點擊不同的標記時,您都需要對它們重新排序,因此性能將變得更糟 - 從O(n)到O(n * log(n)) – 2014-03-25 12:24:00