Ich versuche einen Weg zu finden, um die Anzahl der Meter zu berechnen, die durch 1 Pixel bei einer gegebenen Zoomstufe und einem Geozentrum in Leaflet dargestellt werden. Könnte mich jemand an die Mathematik heranführen, oder wenn es eine Möglichkeit gibt, dies in der Broschüre zu tun? Ich finde nicht viel da draußen.
Sie können die containerPointToLatLng Konvertierungsfunktion von L.Map
verwenden, um die latLng-Koordinaten für eine gegebene Pixelkoordinate zu erhalten. Wenn Sie eines der ersten Pixel und eines der nächsten Pixel verwenden, können Sie die distanceTo Utility-Methode von% verwenden. co_de%, um die Entfernung in Metern zwischen ihnen zu berechnen. Siehe den folgenden Code (vorausgesetzt Map ist eine Instanz von L.Map):
Das sollte funktionieren, danke an Jarek Piórkowski, dass er meinen Fehler vor der Bearbeitung gezeigt hat.
Werfen Sie einen Blick auf die Seite openstreetmap.org auf Zoomstufen . Es gibt diese Formel für die Berechnung der Meter pro Pixel:
Die Entfernung, die von einem Pixel (S) dargestellt wird, ist gegeben durch
S=C*cos(y)/2^(z+8)
wo ...C ist der (äquatoriale) Umfang der Erde
z ist die Zoomstufe
y ist der Breitengrad, an dem Sie an der Skala interessiert sind.
Tags und Links javascript leaflet geo