Предпочтительный порядок записи кортежей широты и долготы в ГИС-сервисах

154

При работе с исходным кодом ГИС вам часто нужно записывать кортежи координат широты и долготы.

Например, в ссылках Google Maps (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 08
1
Я голосую за закрытие этого вопроса, потому что он не о программировании, а о географии. Это также вопрос, основанный на мнении.
TylerH
1
@MikkoOhtamaa Разница в том, что ваш вопрос не спрашивает, какой порядок требуется для конкретной технической спецификации (который, вероятно, будет так же не по теме, как запрос информации о внешней документации), а скорее о том, какой `` предпочтительный '' метод есть [ в общем ]. Что является предпочтительным, меняется в зависимости от человека, которого вы спрашиваете, и цели / контекста использования. Как показали ответы здесь, оба порядка имеют существенное следование. Впоследствии проблема программирования отношений так и осталась совершенно нерешенной.
TylerH
1
@MikkoOhtamaa У меня нет проблем с вопросами ГИС на Stack Overflow. Это не вопрос ГИС; это вопрос "как мне упорядочить широту / долготу" ... нет даже конкретного ГИС-приложения, которое вы просите. Этот вопрос по-прежнему основан на мнении (любой вопрос о «предпочтительных методах» основан на мнении), слишком широк (о каком контексте, сценарии или приложении вы спрашиваете? Как показывают ответы, он отличается в зависимости от этих критериев), и не о программировании (широта и долгота - это не термины программирования, а термины географии).
TylerH

Ответы:

221

EPSG: 4326 специально указывает, что порядок координат должен быть широтой и долготой. Многие программные пакеты по-прежнему используют порядок долготы и широты. Эта ситуация нанесла невообразимый ущерб срокам выполнения проектов и здравомыслию программистов.

Лучшее руководство, которое можно предложить, - это полностью осознавать ожидаемый порядок осей каждого компонента в вашем программном стеке. PostGIS ожидает lng / lat. WFS 1.0 использует lng / lat, но WFS 1.3.0 подчиняется стандарту и использует lat / lng. По умолчанию GeoTools имеет широту / долготу, но может быть изменен с помощью системного свойства.

Документы 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, порядок: Долгота / Широта !! Об этом не говорится в документации к файлу KML !!
Turnerj
2
«Никакая документация для файла KML не говорит, что это» неверно. developers.google.com/kml/documentation/kmlreference#point «Один кортеж, состоящий из значений с плавающей запятой для долготы, широты и высоты (в указанном порядке)».
tmcw
29

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

Иржи Криз
источник
12
За исключением файлов KML. Координаты хранятся в формате lng, lat, alt; вероятно, потому что это можно перевести в x, y, z
Воутер ван Нифтерик
25

Правильный порядок - долгота и широта практически во всех профессиональных ГИС-приложениях, как и в традиционной математике (т. Е. 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).

То же самое и с основными стандартами Open Geospatial Consortium (WKT и WKB, а также с расширениями, такими как EWKB). Точно так же Google может выводить порядок в широте и долготе, чтобы сделать его более знакомым для пользователей, которые выросли с этим обычаем (то есть из стандартов навигации, таких как 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. При необходимости вы можете изменить порядок в пользовательском интерфейсе, но подавляющее большинство ваших данных (шейп-файлы, geojson и т. Д.) Будут в обычном декартовом порядке.

демонтированный
источник
4
Я вижу здесь некоторые разногласия: Я ДВА варианта выбрать - слишком много!
Mikko Ohtamaa
6
Читатели должны принять к сведению, что ISO 6709 прямо заявляет, что вы всегда должны использовать формат [lat, lon] в любом пользовательском интерфейсе, и это не - как можно предположить - просто вопрос личных предпочтений.
Iain Collins
9

По соглашению в «реальной жизни», когда указывается положение, широта (т.е. север / юг) всегда дается первой, например, 20 ° N 56 ° W (хотя это не соответствует обычному соглашению, если думать о стандартной декартовой системе координат). сетка); аналогично, все координаты в Википедии следуют этому соглашению (например, см. расположение Саутгемптона: http://en.wikipedia.org/wiki/Southampton ). Чтобы избежать путаницы, особенно когда единицы измерения не включаются, я всегда рекомендую указывать широту 1-й позиции в кортеже.

ChrisW
источник
9

Лично я никогда не видел ничего, кроме широты, за которой следует долгота.

И при использовании + и - вместо N и S всегда было + это N и - это S.

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

Надеюсь, вам не придется иметь дело с такими старыми приложениями.

Терри
источник
Это легко заметить, когда вы работаете с мировыми приложениями.
Даниэль Антунес Пинто
1
Просто введите любую пару координат долготы и широты в карты Google, и вы увидите, что она интерпретируется как (долгота, широта), а не наоборот. Это пример очень широко используемой системы.
cazort 01
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/… указывает, что предпочтительным порядком является широта / долгота. Кроме того, Google Планета Земля использует широту и долготу.
Терри
7

Так что предпочтительный порядок зависит от личных предпочтений!

Широта была первой; равноденствие было известно тысячелетиями, как дни, когда «солнце пересекает экватор»; в марте переход с юга на север и в сентябре с севера на юг. Единственный вопрос мог заключаться в том, должен ли экватор находиться под углом 0 или 90 градусов. Если взять 0 градусов, то угол между вертикалью и полуденным зенитом Солнца в момент равноденствия будет широтой любого места на всей планете. Первая широта, или простая параллель, фактически определяла сама себя.

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

Во времена Христофора Колумба Широта была единственным номером, который у них был. Стратегия заключалась в том, чтобы пройти параллель перед поворотом налево или направо к месту назначения; наблюдая за облаками или птицами. Измерение скорости в узлах каждый час было обычным явлением, но не учитывались течения. Возможно, величайшим достижением Колумба было возвращение домой из Вест-Индии четыре раза. Без этого земля, которую он обнаружил, не могла быть добавлена ​​на карты.

Прочтите "Долготу" Давы Собела (ISBN: 9780007214228)

Грэм
источник
1
Думаю, он имеет ввиду программно и с технической ссылкой (но могу ошибаться). Хотя урок истории был интересным.
jww 01
1
Это не имеет отношения к вопросу, но определенно интересно. Спасибо :)
Микко Охтамаа
Но в этом есть смысл, поскольку, если бы использовались только координаты карты, без сомнения, порядок был бы долготой, широтой, как в X, Y; путаница существует только из-за того, что сотни лет назад повсюду говорили (и слышали) широту и долготу.
Антти Хаапала
7

ISO 6709 стандартизирует перечисление порядка широты и долготы из соображений безопасности. Приведенное выше объяснение Грэма также кажется мне правильным. Кто-то предположил, что этот ответ не имеет отношения к вопросу - это абсолютно так и объясняет, почему порядок часто указывается как широта и долгота.

Вот как это было указано в течение того времени, как долго навигаторы использовали систему; изменение этого сейчас было бы запутанным и, как предполагает ISO, потенциально опасным. Программное обеспечение ГИС, такое как ArcMap, перечисляет их наоборот, потому что это типичное соглашение для пар координат x, y. Широта - это y, долгота - x, поэтому Arc их перечисляет.

vce500
источник
en.wikipedia.org/wiki/ISO_6709 говорит, что если порядок не указан, предполагается, что это широта, долг. В самом документе говорится, что это особенно важно в пользовательском интерфейсе. «Последовательность координат имеет решающее значение. Исторически сложившееся традиционное использование дает значение широты перед значением долготы. Пользователи в морской и аэронавигационной областях, а также участвующие в реагировании на чрезвычайные ситуации, привыкли видеть широту и долготу, указанные в этом порядке. Если высота или также указывается глубина, она следует за долготой. Представление значений координат в другом порядке имеет последствия для безопасности жизни ".
Dave X
5

Помимо спецификации GeoJSON, о которой уже упоминали другие, существуют другие практические случаи, когда долгота, широта рекомендуется, даже обязательна - например: геопространственное индексирование в MongoDB . Если вы укажете неправильный порядок, ваши запросы вернут неправильные результаты, как если бы они были выполнены снова для транспонированного набора данных.

Александр Адамовский
источник
1

Долгота, затем широта (долгота, широта).

При проецировании на Меркатора долгота определяет направление x, а широта определяет направление y. Большинство библиотек геометрии строго используют этот формат (долгота, широта), поскольку это наиболее интуитивно понятный способ представления географических координат в 2D-плоскости.

Дэвид
источник
3
Итак, если это наиболее интуитивно понятный способ мышления, почему блог Google Планета Земля называется « Блог широты и долготы», в то время как в KML используется долгота и долгота?
theta
1
По сути, навигаторы традиционно использовали порядок координат по широте и долготе, поэтому, если вы испортили этот порядок, вы можете испортить свою навигацию. Таким образом, Google использует традиционный для блога и двумерный порядок для структуры данных. @mkennedy лучше всего отвечает на этот вопрос в своем ответе на тот же вопрос: gis.stackexchange.com/questions/6037/…
Дэвид