2010-12-27 9 views
0

Ich benutze eine statische Google Map, aber dieses Problem könnte wirklich auf alle Karten-Projekt zutreffen. Ich möchte eine Karte in mehrere Quadranten (von etwa 50x50 Pixel) unterteilen und die Spalten als A, B, C .... und die Zeilen als 1, 2, 3 ...Atlas-Stil Kartenindex für statische Google Karte

als nächstes markieren Finden Sie etwas, wie,

1) den Marker, die der am weitesten nördlich sind, Osten, Süden und Westen 2) Verwenden Sie diese Informationen, um den Begrenzungsrahmen von jeder Zeile und Spalte Box 3) Klassifizieren jeden Markers zu definieren durch ihre Zeile und Spalte (Beispiel Marker 1 = [A, 2])

einige Anforderungen,

  • Ich kenne die Zoomstufe nicht, weil ich Google die Zoomstufe für mich entsprechend einstellen ließ und keinen Algorithmus verwenden würde, der von einer Zoomstufe abhängig ist. Ich kenne jedoch die Standorte aller Marker, die auf der Karte angezeigt werden. Hier

ist ein Beispiel einer Karte, die Ich mag würde den Marker klassifizieren, static map example link.

ich diese gefunden, die wie ein guter Start aussehen, Resource 1, Resource 2

Aber ich denke, Ich brauche immer noch Hilfe, um loszulegen. Kann jemand helfen, Pseudo-Code zu schreiben oder ein paar mehr Ressourcen zu veröffentlichen? Ich bin im Moment irgendwie in einer Spur.

Danke! Sehr geschätzt von jeder Hilfe!

+0

Eigentlich mache ich vielleicht das härter, als es sein muss. Ich denke mehr, was ich tun sollte ist, da mein Mittelpunkt und alle Markierungen die Zoomstufe (oder Spannengröße) bestimmen, die dann das Verhältnis von Pixeln zu Grad bestimmen. Verwenden Sie dann die entsprechende Pixelposition für jedes lat, lng-Paar in meiner Sammlung, und klassifizieren Sie das, indem Sie überprüfen, welches x, y-Pixelpaar, das dem lat, lng-Paar entspricht, in welchem ​​Quadranten ist. –

+0

Was wird das sein, denn vielleicht kann ich Sie auf eine andere Richtung hinweisen –

+0

Leider habe ich Ihren Beitrag hier nicht gesehen.Mein Gebrauch zu der Zeit war, eine Atlasartkarte unter Verwendung der statischen Karten Google zu verursachen. Mit Google Maps können Sie die Marker A-Z beschriften oder Ihren eigenen benutzerdefinierten Marker verwenden, aber ich wollte eigentlich nur angeben, auf welchen Cluster von Markern Sie sich beziehen. Ich bin neugierig, welche Ressource Sie im Sinn hatten, obwohl ich schon herausgefunden hatte, was ich für meinen Zweck brauchte. –

Antwort

0

Ok zwei Tage in das habe ich es endlich bekommen. Ich dachte, ich würde meine Gedanken mit Leuten teilen, die später darüber stolpern.

Nach dem PHP-Code auf this site und zum Übersetzen lat, lng Paare zu Pixelkoordinaten, konnte ich die einzelne Pixelzeile durch den x-Wert und die Spalte durch den Pixelwert y klassifizieren.

Um die Zoomstufe zu berechnen, ermittle ich die MaxLat-, MaxLng-, MinLat- und MinLng-Werte, die durch die Sammlung von Markern definiert werden. Dann berechnete ich die Grenzen der Karte bei einer bestimmten Zoomstufe. Schließlich verwendete ich eine Brute-Force-Methode, um zu prüfen, ob die neuen Grenzen der Karte, die durch die Zoomstufe bestimmt wurden, die Grenzen enthalten würden, die durch die Max-, Min-Lat- und Ing-Werte der Sammlung von Markern definiert sind. Ab Zoomstufe 21 (max. Zoom bei Google Maps) dekrementiere ich die Zoomstufe, bis ich eine Zoomstufe mit allen Markierungen gefunden habe.

Es scheint, dass die Zoomstufe, die mit dieser Methode berechnet wird, der voreingestellten Zoomstufe von Google entspricht, die automatisch ausgewählt wird, wenn Sie keine Zoomstufe für eine statische Karte angeben.

In PHP gibt es eine schöne Bibliothek, um all dies zu tun here.