Wie bekomme ich X Y Z Koordinaten von Kacheln durch Klicken auf Leaflet Map

8

Ich möchte um Hilfe bitten, um die mögliche Verwendung von nicht standardmäßigen Koordinaten auf der Karte zu behandeln.

Ich möchte mit Leaflet benutzerdefinierte Karten mit meinem eigenen Kachelgenerator anzeigen. Kacheln werden on-the-fly per Skript generiert, abhängig davon, wo sie angezeigt werden sollen (Parameter {x}, {y}, {z} in der URL-Anfrage an das Skript) Karte wird zoombar sein (von 0 bis 10), Größe von ~ 16000 * 16000 Kacheln im maximalen Zoom und 16 * 16 Kacheln im Minimum) und es wird eine Vielzahl von Objekten angezeigt, jedes Objekt in einer separaten Kachel. Jede Kachel von 64 * 64 Pixeln ist das Objekt auf der Karte. Für jedes Objekt (eine quadratische Kachel) möchte ich seine Informationen per Mausklick anzeigen, indem ich über eine AJAX-Anfrage an den Server sende. Ich wollte nicht alle Informationen über alle Objekte für das Optimierungsziel vorladen. Mein Hauptproblem - Ich kann nicht verstehen, wie man die XY Я -Koordinaten der Kachel, auf die die Maus geklickt hat, korrekt erhält. Im Wesentlichen, weil jede Kachel, wenn sie vom Server geladen wird, an das Raster {x}, {y}, {z} gebunden ist, und so möchte ich diese {x}, {y}, {z} von Klicks auf die map und sende sie für eine weitere AJAX-Anfrage, um Informationen über das Objekt zu erhalten. Jetzt ist es möglich, einen Klickpunkt als Latlng-Koordinaten oder -Koordinaten in Pixeln relativ zur oberen linken Ecke der Karte zu erhalten, was ich nicht auf das Kachelnetz beziehen kann.

Und ich wollte auch die Möglichkeit kennen, die Koordinaten des Klicks relativ zur Kachel zu bekommen. Wenn die Kachel beispielsweise die Abmessungen 64 × 64 hat und der Klick in der Mitte der Kachel ist, wie kann ich dann die relative Koordinate von Klick [32, 32] abrufen? Denn wenn wir {X}, {Y}, {Z} Koordinaten der Kachel und die relativen X * und Y * -Koordinaten des Klicks in der Kachel kennen, können wir "universelles alternatives Koordinatengitter" verwenden.

Vielleicht ist das kein Problem und es kann leicht gelöst werden, aber ich habe noch nie mit einer Google Maps-API gearbeitet und möchte daher die Antwort auf diese Frage wissen.

Vielen Dank im Voraus für Ihre Hilfe!

    
user3263317 02.02.2014, 17:22
quelle

3 Antworten

9

Hier ist ein Arbeitsbeispiel für das Erhalten von Zoom-, X- und Y-Koordinaten der angeklickten Kachel (mit Openstreet-Map): Ссылка

%Vor%

basierend auf einer Antwort Ссылка

    
Lukas Vrabel 14.04.2014 10:55
quelle
2

Sie können die Methoden mouseEventToLayerPoint und mouseEventToContainerPoint in der Leaflet-API verwenden, um Pixel auf dem Bildschirm zu konvertieren Pixel relativ zur oberen linken Ecke der Karte, und dann mit ein wenig Mathematik, können Sie die Position innerhalb einer Kachel ableiten.

    
tmcw 18.02.2014 15:41
quelle
0

Das ist was Leaflet intern tut:

%Vor%     
nathancahill 04.05.2016 04:09
quelle

Tags und Links