Ich habe eine Arraylist, das aus LatLong Objekt besteht, wie unten gezeigt:Vergleich zweier LatLng Objekte in Karte v2 android
ArrayList <LatLng> latLngList = new ArrayList<LatLng>();
Anmerkung: LatLng ein Objekt ist, die Werte geografische Breite und Länge im Doppelformat dh hat, die Breite wird in doppeltem Format und Länge ist im Doppelformat
die folgenden sind die Werte, die in dem obigen gespeichert sind latLngList Objekt:
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)]
Jetzt, da ich mit google map v2 in Android zu tun habe, wenn ich auf einem bestimmten Marker klicken i die Breiten- und Längenposition erhalten und ich versuche, es zu vergleichen mit dem latLngList Objekt zu finden, ob das Objekt vorhanden ist in der latLngList.
ich es in der folgenden Art und Weise tue:
for(LatLng latLng : latLngList) {
marker.getPosition().equals(latLng); **Always returns false**
}
Die Markerposition mich mit folgendem latLng Objekt zurückkehrt:
lat/lng: (34.074226888265116,-118.39924816042185)
Es ist klar, dass das Breiten- und Längen Objekt zurückgegeben durch Marker ist ein bisschen lang und daher schlägt der Vergleich fehl.
Gibt es eine bessere Möglichkeit, das latLng-Objekt zu vergleichen?
mit Tausenden von Punkten kann es sehr lange dauern –
Sie können Ihre ArrayList nach Entfernung von Marker Position bestellen. Implementiert einfach Vergleichbares Interface, also ist das erste Element von ArrayList das nächste. – jgonza73
was? Sie müssen sie jedes Mal neu anordnen, wenn Sie auf verschiedene Marker klicken, so dass die Performance nur noch schlechter wird - von O (n) bis O (n * log (n)) –