Preferowana kolejność zapisywania krotek szerokości i długości geograficznej w usługach GIS

144

Mając do czynienia z kodem źródłowym GIS, często trzeba pisać krotki współrzędnych szerokości i długości geograficznej.

Np. W linkach Google Maps (123, 456):

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

Która kolejność jest preferowana (i dlaczego?)

  • długości i szerokości geograficznej

  • szerokość i długość geograficzna

Widziałem, jak oba są używane w różnych systemach i mam nadzieję, że znajdę jakiś dowód, aby trzymać się innego.

Czy istnieje standardowa praktyka, a jeśli tak, to co to jest / czym one są?

Mikko Ohtamaa
źródło
2
zamiast preferowanej kolejności możesz sprawdzić kompilację przypadków: macwright.org/lonlat
golimar
3
To latitude, longitudezamówienie
onmyway133
1
Głosuję za zamknięciem tego pytania, ponieważ nie dotyczy ono programowania, ale geografii. Jest to również kwestia opiniotwórcza.
TylerH
1
@MikkoOhtamaa Różnica polega na tym, że twoje pytanie nie dotyczy tego, jakie jest wymagane zamówienie dla określonej specyfikacji technicznej (która prawdopodobnie byłaby tak samo niezwiązana z tematem, jak prośba o informacje o dokumentacji poza siedzibą), ale raczej o to, jaka jest `` preferowana '' metoda jest [ ogólnie ]. Jakie są preferowane zmiany w zależności od osoby, o którą pytasz, oraz celu / kontekstu użycia. Jak pokazały odpowiedzi tutaj, obie kolejności mają znaczną liczbę zwolenników. W dalszej kolejności kwestia relacji programowania pozostaje całkowicie nierozwiązana.
TylerH
1
@MikkoOhtamaa Nie mam problemu z pytaniami GIS na temat przepełnienia stosu. To nie jest kwestia GIS; jest to pytanie „jak mam zamówić szerokość / długość geograficzną” ... nie ma nawet określonej aplikacji GIS, o którą prosisz. To pytanie jest nadal oparte na opiniach (każde pytanie dotyczące „preferowanych metod” jest oparte na opiniach), zbyt szerokie (o jaki kontekst, scenariusz lub zastosowanie pytasz? Jak pokazują odpowiedzi, różni się w oparciu o te kryteria), a nie o programowaniu (szerokość i długość geograficzna nie są terminami programistycznymi, ale terminami geograficznymi).
TylerH

Odpowiedzi:

210

EPSG: 4326 wyraźnie stwierdza, że ​​kolejność współrzędnych powinna być zgodna z szerokością i długością geograficzną. Wiele pakietów oprogramowania nadal używa kolejności według długości i szerokości geograficznej. Sytuacja ta spowodowała niewyobrażalne spustoszenie w terminach realizacji projektów i rozsądku programisty.

Najlepsze wskazówki, jakie można zaoferować, to pełna świadomość oczekiwanej kolejności osi każdego komponentu w stosie oprogramowania. PostGIS oczekuje lng / lat. WFS 1.0 używa lng / lat, ale WFS 1.3.0 opiera się na standardzie i używa lat / lng. GeoTools domyślnie ustawia lat / lng, ale można je zastąpić właściwością systemową.

Warto przeczytać dokumentację GeoTools dotyczącą historii i wyjaśnienia problemu: http://docs.geotools.org/latest/userguide/library/referencing/order.html

Shane
źródło
6
Rzadko widzę odpowiedź na SO.com, która wyjaśnia , dlaczego tak dobrze. Bije bzdury z tych odpowiedzi „bo MongoDB tego używa”.
Mikko Ohtamaa
1
Twój link nie zgadza się z Tobą; W bazie danych EPSG 4326 odwzorowuje geograficzny CRS z kolejnością osi (szerokość i długość). Jednak większość oprogramowania w tej dziedzinie rozumie EPSG: 4326 jako geograficzny CRS z kolejnością osi (długość i szerokość geograficzna), ponieważ starsze specyfikacje OGC zostały zaprojektowane w ten sposób.
Aaron McIver
7
Pierwsze dwa zdania z mojej odpowiedzi: EPSG: 4326 konkretnie stwierdza, że ​​kolejność współrzędnych powinna być równa szerokości i długości geograficznej. Wiele pakietów oprogramowania nadal używa kolejności według długości i szerokości geograficznej. Czy to nie jest dokładnie to samo?
Shane,
5
Jeśli ktokolwiek inny ma problemy z Mapami Google i dostarcza do nich plik KML, kolejność to długość / szerokość geograficzna !! Żadna dokumentacja dotycząca pliku KML nie mówi tego !!
Turnerj
2
„Żadna dokumentacja dotycząca pliku KML nie mówi o tym” jest niepoprawna. developers.google.com/kml/documentation/kmlreference#point „Pojedyncza krotka składająca się z wartości zmiennoprzecinkowych długości i szerokości geograficznej oraz wysokości (w tej kolejności)”.
tmcw
28

Preferowana kolejność jest umowna latitude, longitude. Przypuszczalnie zostało to ujednolicone przez Międzynarodową Organizację Morską, jak podano tutaj . Google używa również tej kolejności w swoich Mapach i Earth . Pamiętam tę kolejność, myśląc o kolejności alfabetycznej latitude, longitude.

Jiri Kriz
źródło
12
Z wyjątkiem plików KML. Tam współrzędne są przechowywane jako lng, lat, alt; prawdopodobnie dlatego, że można to przetłumaczyć na x, y, z
Wouter van Nifterick
23

Prawidłowa kolejność to długość i szerokość geograficzna w praktycznie wszystkich profesjonalnych aplikacjach GIS, tak jak w konwencjonalnej matematyce (tj f(x ,y, z).). Standard GeoJSON jest dość typowy i zwięzły:

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).

To samo dotyczy podstawowych standardów Open Geospatial Consortium (WKT i WKB oraz rozszerzeń, takich jak EWKB). Podobnie Google może podawać kolejność w Lat / Lon, aby była bardziej znana użytkownikom, którzy dorastali z tym niestandardowym (tj. Ze standardów nawigacji, takich jak IMO, a nie ze standardów obliczeniowych). Ale sam standard KML jest podobny do praktycznie wszystkich innych systemów GIS:

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

Dobrą zasadą: jeśli wiesz, co jest krotka i są programowania należy używać lon, lat. Powiedziałbym nawet, jeśli dotyczy to użytkownik końcowy (powiedzmy pilotem lub kapitan statku) wolą, aby zobaczyć wyjście w lat, lon. W razie potrzeby możesz zmienić kolejność w swoim interfejsie użytkownika, ale przytłaczająca większość danych (pliki kształtów, pliki geojson itp.) Będzie w normalnym porządku kartezjańskim.

nieoprawny
źródło
4
Widzę tu pewną nieporozumienie: I D Dwa wybory do wyboru - zbyt wiele!
Mikko Ohtamaa,
6
Czytelnicy powinni zauważyć, że ISO 6709 wyraźnie stwierdza, że ​​należy zawsze używać formatu [lat, lon] w każdym interfejsie użytkownika i nie jest to - jak można by wywnioskować - jedynie kwestia osobistych preferencji.
Iain Collins
9

Zgodnie z konwencją w `` prawdziwym życiu '', kiedy podaje się pozycję, szerokość geograficzna (tj. Północ / południe) jest zawsze podawana jako pierwsza, np. 20 ° N 56 ° W (chociaż nie jest to zgodne z normalną konwencją, jeśli myślisz o standardowym krata); podobnie, wszystkie współrzędne w Wikipedii przestrzegają tej konwencji (np. patrz lokalizacja dla Southampton: http://en.wikipedia.org/wiki/Southampton ). Aby uniknąć zamieszania, zwłaszcza gdy jednostki nie są uwzględniane, zawsze zalecałbym, aby szerokość geograficzna była podawana jako pierwsza w krotce.

ChrisW
źródło
9

Osobiście nigdy nie widziałem niczego oprócz szerokości i długości geograficznej.

A używając + i - zamiast N i S, zawsze było + to N, a - to S.

Zauważyłem zmienność podczas używania + i - dla E i W. Ogólnie + było E i - było W.Jednak w starszych aplikacjach, w których zajmowały się nadmiernie długością W, widziałem + jest W i - jest E .

Miejmy nadzieję, że nie będziesz musiał zajmować się tak starymi aplikacjami.

Terry
źródło
Jest to łatwe do zaobserwowania podczas pracy z aplikacjami na całym świecie.
Daniel Antunes Pinto
Po prostu wpisz dowolną parę współrzędnych długości i szerokości geograficznej w mapach Google, a zobaczysz, że interpretuje je jako (długie, szer.), A nie odwrotnie. To przykład bardzo powszechnie używanego systemu.
cazort
2
@cazort Z jakiegoś powodu tak się tutaj nie dzieje. Na przykład moje rodzinne miasto Eugene w stanie Oregon znajduje się około N 44,1, W 123,1. Jeśli na maps.google.com wpiszę 44,1 -123,1, to trafi do Eugene. Jeśli wpiszę -123,1 44, oznacza to, że nie może go znaleźć. Co ciekawe, jeśli wpiszę 123,1 W 44 N, to obliczy to i trafi do Eugene'a, więc jest pewna elastyczność. Również reference.com/technology/… wydaje się wskazywać, że preferowaną kolejnością jest szerokość / długość. Co więcej, Google Earth używa szerokości / długości.
Terry
5

Oprócz specyfikacji GeoJSON, o której wspominali już inni, istnieją inne praktyczne przypadki, w których długość geograficzna, porządek szerokości geograficznej jest zalecany, a nawet obowiązkowy - np .: indeksowanie geoprzestrzenne w MongoDB . Jeśli kolejność jest tam błędna, zapytania zwrócą błędne wyniki, tak jakby zostały ponownie wykonane transponowany zbiór danych.

Aleksander Adamowski
źródło
5

Więc preferowana kolejność zależy od osobistych preferencji!

Latitude była pierwsza; równonoc jest znana od tysiącleci, kiedy „słońce przekracza równik”; w marcu przejście z południa na północ i we wrześniu z północy na południe Jedyne pytanie mogło dotyczyć tego, czy równik powinien mieć 0 czy 90 stopni. Przyjmując 0 stopni, kąt między pionem a południowym zenitem Słońca w równonocy jest szerokością geograficzną lokalizacji na całej planecie. Pierwsza szerokość geograficzna lub pierwsza równoleżnik skutecznie się zdefiniowała.

Długość geograficzna może być tylko za zgodą. Wielka Brytania wystawiła nagrodę Longitude. Wielka Brytania potrzebowała swoich statków, aby wiedzieć, gdzie są i potrzebowała lepszych map. Harrison ( http://www.youtube.com/watch?v=T-g27KS0yiY ) wyprodukował dokładny chronometr morski; wysłali mapy podróży, np. James Cook 1770's. Dlatego Wielka Brytania zdobyła południk główny, używając Greenwich jako 000 stopni na swoich mapach. Po 100 latach ich użytkowania Meridian Prime został przyjęty na całym świecie w 1884 roku.

W czasach Krzysztofa Kolumba Szerokość geograficzna była jedyną liczbą, jaką mieli. Strategia polegała na przecięciu równoległości przed skręceniem w lewo lub w prawo w kierunku celu; wypatruj chmur lub ptaków. Pomiar prędkości w węzłach co godzinę był powszechny, ale nie uwzględniał prądów. Być może największym osiągnięciem Kolumba był czterokrotny powrót do domu z Indii Zachodnich. Bez tego odkryta ziemia nie mogłaby zostać dodana do map.

Przeczytaj „Długość geograficzna” autorstwa Davy Sobel (ISBN: 9780007214228)

Graham
źródło
1
Myślę, że ma na myśli programowo i z odniesieniem technicznym (ale mogę się mylić). Lekcja historii była jednak interesująca.
jww
1
Nie ma to związku z pytaniem, ale zdecydowanie interesujące. Dzięki :)
Mikko Ohtamaa
Ale ma to sens, bo gdybyśmy użyli tylko współrzędnych mapy, byłoby bez wątpienia, że ​​kolejność byłaby długością i szerokością geograficzną, jak w X, Y; zamieszanie istnieje tylko z powodu setek lat pierwszeństwa mówienia (i słyszenia) szerokości i długości geograficznej wszędzie.
Antti Haapala
5

ISO 6709 standaryzuje podawanie kolejności jako szerokości i długości geograficznej ze względów bezpieczeństwa. Powyższe wyjaśnienie Grahama również wydaje mi się poprawne. Ktoś zasugerował, że ta odpowiedź nie jest związana z pytaniem - absolutnie tak jest i wyjaśnia, dlaczego kolejność jest często podawana jako szerokość i długość geograficzna.

W ten sposób został wymieniony od tak dawna, jak nawigatorzy korzystali z systemu; zmiana tego teraz byłaby myląca i, jak sugeruje ISO, potencjalnie niebezpieczna. Oprogramowanie GIS, takie jak ArcMap, wyświetla je na odwrót, ponieważ jest to typowa konwencja dla par współrzędnych x, y. Szerokość geograficzna to y, długość to x, więc tak je podaje Arc.

vce500
źródło
1

Długość i szerokość geograficzna (lon, lat).

W rzutowaniu na długość geograficzną Mercatora określa kierunek x, a szerokość geograficzną - kierunek y. Większość bibliotek geometrii ściśle używa tego formatu (lon, lat), ponieważ jest to najbardziej intuicyjny sposób myślenia o współrzędnych geograficznych na płaszczyźnie 2D.

David
źródło
3
Tak więc, jeśli jest to najbardziej intuicyjny sposób myślenia, dlaczego blog Google Earth nazywa się Lat-Long Blog, podczas gdy używają lon-lat w KML?
theta
1
Zasadniczo chodzi o to, że nawigatorzy tradycyjnie używali kolejności wzdłużnej, więc jeśli pomieszałeś z tym porządkiem, możesz zepsuć nawigację. Tak więc Google używa tradycyjnej metody dla bloga i płaszczyzny 2D do tworzenia struktury danych. @mkennedy odpowiada na to najlepiej w swojej odpowiedzi na to samo pytanie: gis.stackexchange.com/questions/6037/ ...
David