Бажаний порядок написання кортежів широти та довготи в ГІС-послугах


144

У роботі з вихідним кодом GIS вам часто потрібно писати координати широти та довготи.

Наприклад, у посиланнях на Картах Google (123, 456):

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

Який кращий порядок (і чому?)

  • широта довгота

  • довгота, широта

Я бачив, як вони використовуються в різних системах і сподіваюсь знайти деякі докази, які слід дотримуватися інших.

Чи є стандартна практика, і якщо так, то що це / що вони?


2
замість кращого порядку ви можете перевірити збірку справ: macwright.org/lonlat
golimar

3
Це latitude, longitudeнаказ
onmyway133

1
Я голосую, щоб закрити це питання, оскільки йдеться не про програмування, а про географію. Це також питання, засновані на думці.
TylerH

1
@MikkoOhtamaa Різниця полягає в тому, що у вашому запитанні не задається питання про те, що вимагається замовлення для конкретної технічної специфікації (що, ймовірно, буде настільки ж поза темою, як запит на інформацію про документацію за межами веб-сайту), а скоріше, який метод "бажаний" є [ загалом ]. Переважні зміни залежать від запитуваної особи та мети / контексту використання. Як показали відповіді тут, обидва замовлення мають суттєве наступне. Згодом питання відношення програмування досі залишається повністю не вирішеним.
TylerH

1
@MikkoOhtamaa У мене немає проблем з питаннями ГІС щодо переповнення стека. Це не питання ГІС; це питання "як я можу замовити широту / довготу" ... немає навіть конкретної програми GIS, яку ви просите. Це питання все ще ґрунтується на думці (будь-яке запитання щодо "бажаних методів" ґрунтується на думці), занадто широке (про який контекст, сценарій чи програму ви ставите запитання? Як показують відповіді, це базується на цих критеріях), а не про програмування (широта і довгота - це не терміни програмування, а географічні терміни).
TylerH

Відповіді:


210

EPSG: 4326 конкретно зазначає, що порядок координат повинен бути широтою, довготою. У багатьох програмних пакетах досі використовується довгота, упорядкування широти. Ця ситуація призвела до немислимої загрози щодо термінів проекту та розумності програміста.

Найкраще керівництво, яке можна запропонувати, - це повне усвідомлення очікуваного порядку осі кожного компонента у вашому пакеті програмного забезпечення. PostGIS очікує lng / lat. WFS 1.0 використовує lng / lat, але WFS 1.3.0 визначає стандарт і використовує lat / lng. Значення за замовчуванням GeoTools до lat / lng, але його можна змінити із властивістю системи.

Документи GeoTools про історію та пояснення проблеми варто прочитати: http://docs.geotools.org/latest/userguide/library/referencing/order.html


6
Я рідко бачу відповідь на SO.com, де зазначено, чому це добре. Б'є лайно з тих, хто "тому, що MongoDB використовує це".
Мікко Охтамаа

1
Ваше посилання не погоджується з вами; У базі даних EPSG 4326 відображається в географічній CRS з (широтою, довготою) порядком осей. Однак більшість програмного забезпечення в цій галузі розуміють EPSG: 4326 як географічну CRS з (довготою, широтою) порядком осей, тому що застарілі специфікації OGC були розроблені саме таким чином.
Аарон Маківер

7
Перші два речення з моєї відповіді: EPSG: 4326 конкретно зазначає, що порядок координат повинен бути широтою, довготою. У багатьох програмних пакетах досі використовується довгота, упорядкування широти. Чи не зовсім так?
Шейн

5
Якщо хтось інший має проблеми з Google Maps та надає на нього файл KML, замовлення - Longitude / Latitude !! Жодна документація для файлу KML не говорить про це !!
Турнерж

2
"Жодна документація для файлу KML не говорить про це" невірно. developers.google.com/kml/documentation/kmlreference#point "Одиничний кортеж, що складається з значень з плаваючою комою для довготи, широти та висоти (у цьому порядку)."
tmcw

28

Кращий порядок здійснюється за умовами latitude, longitude. Імовірно, це було стандартизовано Міжнародною морською організацією, як повідомлялося тут . Google також використовує це замовлення у своїх Картах і на Землі . Я пам'ятаю цей порядок, думаючи про алфавітний порядок latitude, longitude.


12
За винятком файлів KML. Там координати зберігаються як lng, lat, alt; ймовірно, тому, що це можна перекласти на x, y, z
Wouter van Nifterick

23

Правильний порядок - це довгота, широта практично у всіх професійних програмах ГІС, як це є у звичайній математиці (тобто f(x ,y, z)). Стандарт GeoJSON є досить типовим і стислим:

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

Те саме стосується первинних стандартів консорціуму відкритого геопросторового типу (WKT та WKB та розширення типу EWKB). Так само Google може вивести замовлення в Lat / Lon, щоб зробити його більш звичним для користувачів, які виросли з цим звичаєм (тобто з навігаційних стандартів, таких як IMO, а не з обчислювальних.) Але сам стандарт KML подібний практично до всіх інших систем ГІС:

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

Гарне емпіричне правило: якщо ви знаєте , що кортеж і програмування, ви повинні використовувати lon, lat. Я б навіть сказав , це може бути застосовано , якщо ваш кінцевий користувач (скажімо , пілот або капітан корабля) віддасть перевагу , щоб переглянути вихід в lat, lon. Ви можете переключити замовлення у своєму інтерфейсі за потреби, але переважна більшість ваших даних (shapefiles, geojson тощо) будуть у звичайному декартовому порядку.


4
Тут я бачу деяку незгоду: Я ДВОЯ вибір - занадто багато!
Мікко Охтама

6
Читачі повинні зауважити, що ISO 6709 прямо зазначає, що ви завжди повинні використовувати [lat, lon] формат у будь-якому інтерфейсі, і це не - як можна зробити висновок - лише питання особистої переваги.
Ієн Коллінз

9

Згідно з умовами в реальному житті, при наданні позиції широту (тобто північ / південь) завжди дають 1-ю, наприклад, 20 ° с. 56 ° с. сітка); аналогічно, всі координати у Вікіпедії дотримуються цієї конвенції (наприклад, див. місце розташування Саутгемптона: http://en.wikipedia.org/wiki/Southampton ). Щоб зберегти плутанину, особливо коли одиниці не включаються, я завжди рекомендую, щоб широта була задана 1-м в кортежі.


9

Особисто я ніколи не бачив нічого, крім широти, за якою слідувала довгота.

І при використанні + і - замість N і S завжди було + є N і - є S.

Я помітив різницю при використанні + і - для E і W. Взагалі + було E і - було W. Однак на старих програмах, де вони мали справу з W довготою, я бачив + бути W і - бути E .

Сподіваємось, вам не доведеться мати справу з давніми програмами.


Це легко помітити при роботі зі світовими програмами.
Даніель Антунес Пінто

Просто введіть будь-яку пару координат довготи та широти на карти Google, і ви побачите, що вона інтерпретує це як (long, lat), а не навпаки. Ось приклад дуже широко використовуваної системи.
cazort

2
@cazort З будь-якої причини цього тут не відбувається. Наприклад, мій рідний місто Юджін, штат Орегон, становить приблизно N 44,1, W 123,1. Якщо в maps.google.com я ввожу 44.1 -123.1, це переходить до Євгенія. Якщо я введіть -123,1 44, він говорить мені, що не може його знайти. Цікаво, що, якщо я введіть 123,1 W 44 N, він розраховує це і переходить до Євгенія, тому є деяка гнучкість. Також, посилається, що reference.com/technology/… вказує, що tht lat / long є кращим порядком. Крім того, для чого це коштує, Google Планета Земля використовує lat / long.
Террі

5

Крім специфікацій GeoJSON, про які вже згадували інші, є й інші практичні випадки, коли довгота, латитоподібний порядок рекомендується, навіть обов'язкові - наприклад: геопросторове індексування в MongoDB . Якщо ви неправомірно замовите там, ваші запити повернуть неправильні результати, як якщо б вони знову виконували перенесений набір даних.


5

Тож переважне замовлення залежить від особистих переваг!

Широта позиція була першою; рівнодення відоме тисячоліттями, коли дні «сонце перетинає екватор»; в березні перехід від S до N та Sept від N до S. Єдиним питанням могло бути, чи повинен був екватор 0 або 90 градусів. Приймаючи 0 градусів, кут між вертикальним та полуденним сонячним зенітом на рівнодення є широтою місця, де є планета. Основна широта, або проста паралель, ефективно визначала себе.

Довгота могла бути лише за домовленістю. Великобританія виставила приз Longitude. Британії потрібні були її кораблі, щоб знати, де вони знаходяться, і потрібні кращі карти. Гаррісон ( http://www.youtube.com/watch?v=T-g27KS0yiY ) створив точний морський хронометр; вони відправляли картографічні мандрівки, наприклад, Джеймс Кук 1770-х. Тому Британія претендувала на головний меридіан, використовуючи Грінвіч як 000 дег для своїх карт. Після 100 років їх використання основний меридіан був прийнятий на міжнародному рівні, у 1884 році.

У часи Христофора Колумба широта була єдиною їх кількістю. Стратегія полягала в тому, щоб пройти паралель, перш ніж повернути ліворуч або праворуч до місця призначення; спостерігаючи за хмарами чи птахами. Вимірювання швидкості у вузлах щогодини було звичайним явищем, але не враховувало струмів. Можливо, найбільшим досягненням Колумба було повернення додому із Вест-Індії чотири рази. Без цього землю, яку він виявив, не можна було б додати до карт.

Читайте "Довготу" Дави Собел (ISBN: 9780007214228)


1
Я думаю, що він має на увазі програмно і з технічним посиланням (але я можу помилитися). Хоча урок історії був цікавим.
jww

1
Це не стосується питання, але, безумовно, цікаво. Дякую :)
Mikko Ohtamaa

Але це має сенс, бо якби використовувались лише координати карт, було б без сумніву, що порядок буде довготою, широтою, як у X, Y; плутанина існує лише через сотні років переваги говорити (і слухати) широту, довготу всюди.
Антті Хаапала

5

ISO 6709 стандартизує перелік замовлення як широту, довготу з міркувань безпеки. Пояснення Грема вище звучить правильно і для мене. Хтось запропонував, що ця відповідь не пов'язана з питанням - вона абсолютно є, і пояснює, чому наказ часто дають як широту, довготу.

Ось так воно було внесено до списку, як би довгі навігатори не використовували систему; змінити це зараз було б заплутаним і, як підказує ISO, потенційно небезпечним. Програмні засоби GIS, як ArcMap, перераховують їх навпаки, тому що це типова умова для координатних пар x, y. Широта - y, довгота - x, тому арк перераховує їх.


1

Довгота тоді Широта (лон, лат.)

При проектуванні на Меркатор довгота визначає напрямок x, а широту визначає напрямок y. Більшість бібліотек геометрії строго використовує цей формат (lon, lat), оскільки це найбільш інтуїтивний спосіб думати географічні координати у двовимірній площині.


3
Отже, якщо це найбільш інтуїтивний спосіб мислення, чому блог Google Планета Земля називається Lat-Long Blog, коли вони використовують lon-lat в KML?
theta

1
В основному, навігатори традиційно використовували лат-лон впорядкування, тож, якщо ви заблукали з цим замовленням, ви можете накрутити свої навігації. Таким чином, Google використовує традиційний для блогу та 2D замовлення площини для їх структури даних. @mkennedy відповідає на цей кращий в своїй відповіді на те ж питання: gis.stackexchange.com/questions/6037 / ...
David
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.