Suite

Pouvons-nous définir le point de départ de latlng : dépliant


Je travaille avec le dépliant api.

J'essaie de comprendre comment modifier ou définir le point de départ latlng dans la carte du dépliant.

Actuellement, je travaille sur l'utilisation de l'image comme carte ,,,, le latlng (0,0) est en haut à gauche de l'image ou du conteneur de cette image…

S'il est possible que je le change en bas à gauche

Aperçu de la carte :

S'il est possible de changer la position d'origine (0,0) de haut à gauche en bas à gauche,,,,


Tout d'abord, lisez le code source deL.CRS.Simple, en particulier cette ligne :

transformation : enTransformation(1, 0, -1, 0),

C'est une méthode d'usine pour instancier une transformation affine à partir de L.Transformation. En lisant la documentation, vous pouvez noter qu'unL.Transformation(a, b, c, d)correspond à la transformation avec la matrice affine :

a 0 b 0 c d 0 0 1

Alors leL.Transformation(1, 0, -1, 0)deL.CRS.SimpleCorrespond à

1 0 0 0 -1 0 0 0 1

Et maintenant, vous devriez penser "Hé, pourquoi Leaflet inverse-t-il la coordonnée Y dansL.CRS.Simple?" La réponse est que les coordonnées des pixels de l'écran vont en bas et à droite tandis que les coordonnées dans un système de coordonnées cartésiennes vont en haut et à droite.

Notez également que les systèmes de coordonnées planaires sont infini dans les deux sens horizontal et vertical. Cela signifie que (0, 0) n'est pas dans un coin du système de coordonnées, car… le système de coordonnées n'a pas de coins.

Notez également qu'il n'est pas nécessaire que la coordonnée (0, 0) corresponde à un coin de l'image. Vous devez définir quelle est la sémantique de votre origine de coordonnées. Voulez-vous des coordonnées relatives à un coin de l'image, au centre (ou centroïde) du bâtiment, à un point de repère proche, par rapport à un autre SIR géographique ?

Aussi, quelles sont les unités de votre CRS ? 1 unité = 1 pixel dans l'image ? 1 unité = 1 mètre ? 1 unité = 1 centimètre ? 1 unité = 1 pied ? 1 unité = 1 mètre ?

Maintenant, en supposant que vous souhaitiez utiliser un système de coordonnées cartésiennes, attribuez la coordonnée (0, 0) en bas à gauche de votre image et assurez-vous que tous les pixels ont des coordonnées positives (supérieures à zéro), alors vous n'avez pas besoin de faire n'importe quoi. (Faites simplement plus attention à la sémantique de votre CRS).

En supposant que vous souhaitiez utiliser un système de coordonnées cartésiennes, attribuez la coordonnée (0, 0) en haut à gauche de votre image et assurez-vous que tous les pixels ont des coordonnées positives, puis utilisez un CRS personnalisé en inversant l'axe Y par rapport àL.CRS. Ceci peut être réalisé en définissant un tel CRS commeL.CRS.Simple.extend({ transformation : L.transformation(1, 0, 1, 0) })(conformément à la documentation Leaflet sur l'extension des classes).

Dans tous les cas, je vous suggère de faire plus attention à la sémantique de votre système de coordonnées.


Voir la vidéo: How to Find Coordinates Using Latitude and Longitude (Octobre 2021).