162 votes

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

Lorsque vous traitez le code source d'un 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 que les deux sont utilisés dans différents systèmes et j'espère trouver des preuves pour rester avec l'autre.

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

2 votes

Au lieu de l'ordre préférentiel, vous pouvez vérifier une compilation de cas : macwright.org/lonlat

3 votes

C'est latitude, longitude commander

0 votes

229voto

Shane Points 1142

EPSG:4326 indique spécifiquement que l'ordre des coordonnées doit être latitude, longitude. De nombreux logiciels utilisent encore l'ordre longitude, 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 donner est d'être pleinement conscient de l'ordre d'axe attendu 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.

Les documents GeoTools sur l'historique et l'explication du problème valent la peine d'être lus : http://docs.geotools.org/latest/userguide/library/referencing/order.html

0 votes

Enfin une réponse qui fait autorité :)

7 votes

Je vois rarement comme réponse sur SO.com qui déclare pourquoi ce bien. Ça bat en brèche les réponses du type "parce que MongoDB l'utilise".

1 votes

Votre lien n'est pas d'accord avec vous ; Dans la base de données EPSG, 4326 correspond à un CRS géographique avec un ordre d'axe (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 anciennes spécifications de l'OGC ont été conçues de cette façon.

29voto

Jiri Points 5589

L'ordre préféré est par convention latitude, longitude . Ceci était vraisemblablement normalisé par le site Organisation maritime internationale comme indiqué aquí . Google utilise également cet ordre dans son Cartes y Terre . Je me souviens de cet ordre en pensant à l'ordre alphabétique des mots. latitude, longitude .

13 votes

Sauf dans les fichiers KML. Là, les coordonnées sont enregistrées sous la forme lng,lat,alt ; probablement parce que cela peut être traduit en x,y,z.

27voto

unmounted Points 10968

L'ordre correct est longitude, latitude, dans la quasi-totalité des applications SIG professionnelles, comme c'est le cas dans les mathématiques conventionnelles (ex, f(x ,y, z) ). La norme GeoJSON est assez typique et succincte :

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 principales normes de l'Open Geospatial Consortium (WKT et WKB, et les extensions comme EWKB). De même, Google peut afficher l'ordre en latitude et longitude afin de le rendre plus familier aux utilisateurs qui ont grandi avec cette coutume (c'est-à-dire à partir de normes de navigation telles que l'OMI, plutôt que de normes informatiques) :

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

Une bonne règle de base : si vous savez ce qu'est un tuple et que vous programmez, vous devriez utiliser lon , lat . Je dirais même que cela s'applique si votre utilisateur final (disons un pilote ou un capitaine de navire) préfère visualiser la sortie en format lat , lon . Vous pouvez changer l'ordre dans votre interface utilisateur si nécessaire, mais l'écrasante majorité de vos données (shapefiles, geojson, etc.) seront dans l'ordre cartésien normal.

4 votes

Je vois des désaccords ici :I TWo choix à faire - trop de choix !

6 votes

Les lecteurs sont priés de noter que la norme ISO 6709 stipule explicitement que vous devez toujours utiliser le format [lat, lon] dans toute interface utilisateur et qu'il ne s'agit pas - comme on pourrait le croire - d'une simple question de préférence personnelle.

9voto

ChrisW Points 2112

Par convention dans la "vraie vie", lorsqu'on donne une position, la latitude (c'est-à-dire le nord/sud) est toujours donnée en premier, par exemple 20°N 56°W (bien que cela ne suive pas la convention normale si l'on pense à une grille cartésienne standard) ; de même, toutes les coordonnées sur Wikipédia suivent cette convention (par exemple, voir la localisation de Southampton : http://en.wikipedia.org/wiki/Southampton ). Pour éviter toute confusion, surtout lorsque les unités ne sont pas incluses, je recommande toujours que la latitude soit donnée en premier dans un tuple.

9voto

Terry Points 625

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

Et, quand on utilise + et - au lieu de N et S, c'est toujours + qui est N et - qui est S.

J'ai observé des variations dans l'utilisation de + et - pour E et W. Généralement, + correspond à E et - à W. Cependant, dans les anciennes applications où l'on traitait de manière excessive les longitudes W, j'ai vu + correspondre à W et - à E.

Espérons que vous n'aurez pas à vous occuper d'applications aussi anciennes.

0 votes

C'est facilement observable lorsque vous travaillez avec des applications mondiales.

1 votes

Il suffit de taper n'importe quelle paire de coordonnées de longitude et de latitude dans Google Maps pour voir qu'il les interprète comme (long, lat), et non l'inverse. C'est un exemple d'un système très largement utilisé.

2 votes

@cazort Pour une raison quelconque, ça n'arrive pas ici. Par exemple, ma ville natale d'Eugene, dans l'Oregon, se situe approximativement à N 44.1, W 123.1. Si, dans maps.google.com, j'entre 44.1 -123.1, cela me mène à Eugene. Si je saisis -123.1 44, il me dit qu'il ne peut pas le trouver. Cependant, il est intéressant de noter que si je saisis 123.1 W 44 N, il s'en rend compte et va à Eugene, ce qui laisse une certaine souplesse. Voir aussi reference.com/technologie/ semble indiquer que l'ordre préféré est lat/long. De plus, pour ce que cela vaut, Google Earth utilise le format lat/long.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X