Ordre d'écriture préféré des tuples de latitude et de longitude dans les services SIG

145

Lorsqu'il s'agit de code source SIG, vous devez souvent écrire des tuples de coordonnées de latitude et de longitude.

Par exemple dans les liens Google Maps (123, 456):

http://maps.google.com/maps/ms?msid=214518704716144912556.00046d7689a99e95b721c&msa=0&ll=123,456&spn=0.007996,0.026865

Quel est l'ordre préféré (et pourquoi?)

  • latitude Longitude

  • longitude latitude

J'ai vu les deux être utilisés dans divers systèmes et j'espère trouver des preuves pour m'en tenir à un autre.

Existe-t-il une pratique standard, et si oui, quelle est-elle / quelles sont-elles?

Mikko Ohtamaa
la source
2
au lieu de l'ordre préféré, vous pouvez consulter une compilation de cas: macwright.org/lonlat
golimar
3
It's latitude, longitudeorder
onmyway133
1
Je vote pour clore cette question car il ne s'agit pas de programmation mais de géographie. C'est aussi une question d'opinion.
TylerH
1
@MikkoOhtamaa La différence est que votre question ne demande pas quelle est la commande requise pour une spécification technique particulière (ce qui serait probablement aussi hors sujet qu'une demande d'informations de documentation hors site), mais plutôt quelle est la méthode `` préférée '' est [ en général ]. Quels sont les changements préférés en fonction de la personne que vous demandez et du but / contexte de l'utilisation. Comme les réponses ici l'ont montré, les deux ordres ont une suite substantielle. Par la suite, la question de la relation de programmation n'est toujours pas résolue.
TylerH
1
@MikkoOhtamaa Je n'ai aucun problème avec les questions SIG sur Stack Overflow. Ce n'est pas une question SIG; c'est une question "comment dois-je classer la latitude / longitude" ... il n'y a même pas d'application SIG spécifique que vous demandez. Cette question est toujours basée sur l'opinion (toute question demandant les «méthodes préférées» est basée sur l'opinion), trop large (de quel contexte, scénario ou application posez-vous des questions? Comme le montrent les réponses, c'est différent en fonction de ces critères), et non sur la programmation (la latitude et la longitude ne sont pas des termes de programmation mais des termes géographiques).
TylerH le

Réponses:

211

EPSG: 4326 indique spécifiquement que l'ordre des coordonnées doit être la latitude, la longitude. De nombreux logiciels utilisent encore la longitude et la latitude. Cette situation a fait des ravages inimaginables sur les délais des projets et la santé mentale des programmeurs.

Le meilleur conseil que l'on puisse offrir est d'être pleinement conscient de l'ordre prévu des axes de chaque composant de votre pile logicielle. PostGIS attend lng / lat. WFS 1.0 utilise lng / lat, mais WFS 1.3.0 s'en remet à la norme et utilise lat / lng. GeoTools utilise par défaut lat / lng mais peut être remplacé par une propriété système.

La documentation GeoTools sur l'historique et l'explication du problème mérite une lecture: http://docs.geotools.org/latest/userguide/library/referencing/order.html

Shane
la source
6
Je vois rarement une réponse sur SO.com qui explique pourquoi cela bien. Beats merde de ces réponses «parce que MongoDB l'utilise».
Mikko Ohtamaa
1
Votre lien n'est pas d'accord avec vous; Dans la base de données EPSG, 4326 correspond à un CRS géographique avec l'ordre des axes (latitude, longitude). Cependant, la plupart des logiciels sur le terrain comprennent EPSG: 4326 comme un CRS géographique avec un ordre d'axe (longitude, latitude), car les spécifications OGC héritées ont été conçues de cette façon.
Aaron McIver
7
Deux premières phrases de ma réponse: EPSG: 4326 indique spécifiquement que l'ordre des coordonnées doit être la latitude, la longitude. De nombreux logiciels utilisent encore l'ordre de longitude et de latitude. N'est-ce pas exactement la même chose?
Shane
5
Si quelqu'un d'autre a des problèmes avec Google Maps et lui fournit un fichier KML, l'ordre est Longitude / Latitude !! Aucune documentation pour le fichier KML ne le dit !!
Turnerj
2
"Aucune documentation pour le fichier KML ne dit cela" est incorrect. developer.google.com/kml/documentation/kmlreference#point "Un seul tuple composé de valeurs à virgule flottante pour la longitude, la latitude et l'altitude (dans cet ordre)."
tmcw
28

L'ordre préféré est par convention latitude, longitude. Cela a probablement été normalisé par l' Organisation maritime internationale, comme indiqué ici . Google utilise également cet ordre dans ses Maps et Earth . Je me souviens de cet ordre en pensant à l'ordre alphabétique de latitude, longitude.

Jiri Kriz
la source
12
Sauf dans les fichiers KML. Là, les coordonnées sont stockées comme lng, lat, alt; probablement parce que cela peut être traduit en x, y, z
Wouter van Nifterick
23

Le bon ordre est la longitude, la latitude, dans pratiquement toutes les applications SIG professionnelles, comme c'est le cas en mathématiques conventionnelles (c'est-à-dire f(x ,y, z)). Le standard GeoJSON est assez typique et succinct:

The order of elements must follow x, y, z order
(easting, northing, altitude for coordinates in a 
projected coordinate reference system, or longitude,
latitude, altitude for coordinates in a geographic
coordinate reference system).

Il en va de même pour les principaux standards de l'Open Geospatial Consortium (WKT et WKB, et des extensions comme EWKB). De même, Google peut afficher l'ordre en Lat / Lon pour le rendre plus familier aux utilisateurs qui ont grandi avec cette coutume (c'est-à-dire à partir de normes de navigation comme IMO, plutôt que de normes de calcul.) Mais la norme KML elle-même est comme pratiquement tous les autres systèmes SIG:

The KML encoding of every kml:Location and coordinate
tuple uses geodetic longitude, geodetic latitude, and
altitude (in that order).

Bonne règle: si vous savez ce qu'est un tuple est et programmez, vous devriez utiliser lon, lat. Je dirais même cela vaut si votre utilisateur final (dire un pilote ou un capitaine de navire) préféreront voir la sortie en lat, lon. Vous pouvez changer l'ordre dans votre interface utilisateur si nécessaire, mais l'écrasante majorité de vos données (fichiers de formes, geojson, etc.) seront dans l'ordre cartésien normal.

démonté
la source
4
Je vois un désaccord ici: j'ai DEUX choix à choisir - trop!
Mikko Ohtamaa
6
Les lecteurs doivent noter que l'ISO 6709 stipule explicitement que vous devez toujours utiliser le format [lat, lon] dans n'importe quelle interface utilisateur et que ce n'est pas - comme on pourrait le déduire - simplement une question de préférence personnelle.
Iain Collins
9

Par convention dans la `` vie réelle '', lorsque vous donnez une position, la latitude (c'est-à-dire Nord / Sud) est toujours donnée en 1ère, par exemple 20 ° N 56 ° W (bien que cela ne suit pas la convention normale si vous pensez à un cartésien standard la grille); de même, toutes les coordonnées sur Wikipedia suivent cette convention (par exemple, voir l'emplacement pour Southampton: http://en.wikipedia.org/wiki/Southampton ). Pour éviter toute confusion, en particulier lorsque les unités ne sont pas incluses, je recommande toujours que la latitude soit donnée en premier dans un tuple.

ChrisW
la source
9

Personnellement, je n'ai jamais rien vu d'autre que la latitude suivie de la longitude.

Et, lorsque vous utilisez + et - au lieu de N et S, cela a toujours été + est N et - est S.

J'ai observé une variation lors de l'utilisation de + et - pour E et W.Généralement + a été E et - a été W. Cependant, sur les applications plus anciennes où ils traitaient de manière excessive avec les longitudes W, j'ai vu + être W et - être E .

J'espère que vous n'aurez pas à vous occuper d'applications aussi anciennes.

Terry
la source
C'est facilement observable lorsque vous travaillez avec des applications mondiales.
Daniel Antunes Pinto
Tapez simplement n'importe quelle paire de coordonnées de longitude et de latitude dans Google Maps et vous verrez qu'il l'interprète comme (long, lat), et non l'inverse. C'est un exemple de système très largement utilisé.
cazort
2
@cazort Pour une raison quelconque, cela ne se produit pas ici. Par exemple, ma ville natale d'Eugene, dans l'Oregon, est à environ N 44,1, W 123,1. Si dans maps.google.com j'entre 44.1 -123.1, cela va à Eugene. Si j'entre -123,1 44, cela m'indique qu'il ne peut pas le trouver. Fait intéressant, cependant, si j'entre 123.1 W 44 N, il le comprend et va à Eugene, donc il y a une certaine flexibilité. Il semble également que reference.com/technology /... indique que la latitude / longueur est l'ordre préféré. De plus, pour ce que ça vaut, Google Earth utilise lat / long.
Terry
5

Outre les spécifications GeoJSON, que d'autres ont déjà mentionnées, il existe d'autres cas pratiques où la longitude, l'ordre des latitudes est recommandé, voire obligatoire - par exemple: l'indexation géospatiale dans MongoDB . Si vous vous trompez dans la commande, vos requêtes renverront des résultats erronés, comme si elles étaient à nouveau exécutées sur un ensemble de données transposé.

Aleksander Adamowski
la source
5

L'ordre préféré dépend donc de vos préférences personnelles!

La latitude est venue en premier; l'équinoxe est connu depuis des millénaires, comme les jours où «le soleil traverse l'équateur»; en mars traversant du S au N et Sept du N au S. La seule question aurait pu être de savoir si l'équateur aurait dû être à 0 ou 90 degrés. En prenant 0 degré, l'angle entre la verticale et le zénith solaire de midi à l'équinoxe est la latitude d'un lieu, partout sur la planète. La latitude principale, ou parallèle principal, s'est effectivement définie.

La longitude ne pouvait être que par accord. La Grande-Bretagne a mis en place un prix Longitude. La Grande-Bretagne avait besoin de ses navires pour savoir où ils se trouvaient et avait besoin de meilleures cartes. Harrison ( http://www.youtube.com/watch?v=T-g27KS0yiY ) a produit un chronomètre marin précis; ils ont envoyé des voyages de voyage de cartographie, par exemple James Cook 1770. La Grande-Bretagne a donc revendiqué le premier méridien en utilisant Greenwich comme 000deg pour ses cartes. Après 100 ans d'utilisation, le Prime Meridian a été accepté internationalement, en 1884.

À l'époque de Christophe Colomb, Latitude était le seul numéro dont ils disposaient. La stratégie était de traverser un parallèle avant de tourner à gauche ou à droite pour destination; regarder les nuages ​​ou les oiseaux. La mesure de la vitesse en nœuds toutes les heures était courante mais ne tenait pas compte des courants. Peut-être que la plus grande réussite de Columbus a été de rentrer des Antilles à quatre reprises. Sans cela, les terres qu'il a découvertes ne pourraient être ajoutées aux cartes.

Lire "Longitude" par Dava Sobel (ISBN: 9780007214228)

Graham
la source
1
Je pense qu'il veut dire par programme et avec une référence technique (mais je peux me tromper). La leçon d'histoire était cependant intéressante.
jww
1
Cela n'est pas lié à la question, mais certainement intéressant. Merci :)
Mikko Ohtamaa
Mais cela a du sens, car si seules les coordonnées cartographiques étaient utilisées, il serait incontestable que l'ordre serait la longitude, la latitude, comme en X, Y; la confusion n'existe qu'à cause des centaines d'années de préséance de dire (et d'entendre) la latitude, la longitude partout.
Antti Haapala
5

ISO 6709 standardise la liste de l'ordre en latitude et longitude pour des raisons de sécurité. L'explication de Graham ci-dessus me semble également correcte. Quelqu'un a suggéré que cette réponse n'était pas liée à la question - c'est absolument le cas et explique pourquoi l'ordre est souvent donné en latitude, longitude.

C'est ainsi qu'il est répertorié depuis longtemps que les navigateurs utilisent le système; changer cela maintenant serait déroutant et, comme le suggère l'ISO, potentiellement dangereux. Les logiciels SIG, comme ArcMap, les répertorient dans l'autre sens car c'est la convention typique pour les paires de coordonnées x, y. La latitude est y, la longitude est x, c'est ainsi qu'Arc les répertorie.

vce500
la source
1

Longitude puis Latitude (lon, lat).

Lorsqu'elle est projetée sur Mercator, la longitude définit la direction x et la latitude définit la direction y. La plupart des bibliothèques de géométrie utilisent strictement ce format de (lon, lat) car c'est la manière la plus intuitive de penser les coordonnées géographiques dans un plan 2D.

David
la source
3
Donc, si c'est la façon la plus intuitive de penser, pourquoi le blog Google Earth s'appelle Lat-Long Blog alors qu'ils utilisent lon-lat dans KML?
theta
1
Fondamentalement, c'est que les navigateurs ont traditionnellement utilisé la commande lat-lon, donc si vous avez gâché cette commande, vous risquez de gâcher vos navigations. Google utilise donc le traditionnel pour un blog et le plan 2D pour sa structure de données. @mkennedy répond le mieux à cette question dans sa réponse à la même question: gis.stackexchange.com/questions/6037/…
David