Caching Overlays durch Runden von Koordinaten Rechtecke - wie?

8

Ich habe eine Karte mit Overlays, die ich cachen möchte - an jedem Ort, den der Benutzer auf der Karte besucht hat (das ist ein rechteckiger Bereich) - überprüfe ich, ob ich einen Cache der Überlagerungen habe, die sich in diesem Rechteck befinden.

Um das Caching zu verbessern (wenn sich der Benutzer zuvor auf demselben Rechteck befand, außer dass er nun ein paar Meter vom vorherigen Rechteck entfernt ist), möchte ich die Koordinaten "runden".

Auf diese Weise überprüfe ich jedes Mal, wenn sich der Benutzer in einem Rechteck befindet, ob dieses Rechteck den zuvor zwischengespeicherten Rechtecken ähnelt, und wenn dies der Fall ist, bringe ich das zwischengespeicherte Ergebnis.

Wenn der Benutzer herausgezoomt wird und sein Rechteck innerhalb eines größeren (zuvor zwischengespeicherten) Rechtecks ​​ist, kann ich auch das zwischengespeicherte Rechteck verwenden.

Irgendwelche Vorschläge?

    
programmer 05.02.2013, 09:23
quelle

3 Antworten

1

Wenn Sie sich nur überlegen, wie Sie die Koordinaten gruppieren möchten, entscheiden Sie sich für den maximalen Unterschied zwischen Koordinaten in x und y oder Breite und Länge, die Sie möchten. Dann gibt es zwei Möglichkeiten, wie Sie sie gruppieren können. Das erste ist einfacher, aber es wird langsam, wenn Sie viele Punkte haben.

Nehmen wir an, wir haben eine Datenstruktur namens cachedPoints, eine maximale Entfernung zwischen verwandten Punkten, die maxdistance genannt wird, und einen neuen Punkt, den wir überprüfen wollen, um zu sehen, ob er nahe dem anderen aufgerufenen Punkt ist.

%Vor%

Der andere Weg besteht darin, eine nach x oder Breitengrad sortierte Datenstruktur zu verwenden und dann nach einem Cached-Punkt mit einem x oder einer Breite innerhalb der maximalen Entfernung des Punktes zu suchen und dann y oder longitude zu überprüfen. Es wäre ein bisschen schneller, aber es würde eine Art Hash zur Implementierung benötigen und fügt eine Menge Komplexität hinzu, die Sie möglicherweise nicht brauchen.

Hoffentlich fragen Sie das.

    
NathanTempelman 13.02.2013 20:26
quelle
1

Wenn Sie eine Datenstruktur wie folgt einrichten:

%Vor%

Sie können dazu die Modulo-Funktion verwenden:

%Vor%

das obige kann oder kann sich nicht als gültig herausstellen JS - Ich habe nicht versucht, es auszuführen. Ich hoffe, du bekommst das Wesentliche sowieso.

    
penguat 15.02.2013 11:32
quelle
0

Hey Sie können Marker in Google Map v2 in Android hinzufügen.

Hier gebe ich Code für den Marker hinzufügen

%Vor%     
Gautam Vasoya 16.02.2013 10:13
quelle