Нужно ли считать длинные линии в шейп-файлах геодезическими или прямыми линиями в двумерном длинном пространстве?


13

Есть ли определение того, как линии соединяют вершины в формате шейп-файла?

В простейшем случае представьте линию только с 2 точками, от 40, -118 до 40, -112 - это где-то случайно в США - со стандартной географической системой координат WGS84. Вот содержимое файла .prj:

GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]

Точка скажет 40,1, -116 к северу или югу от линии?

  1. Если мы рассмотрим линии, которые линейно интерполируются в латлонном пространстве, то это следует за 40 градусной параллелью (маленький круг), и точка находится к северу от линии.
  2. Если мы считаем, что линии - это кратчайшие пути на поверхности Земли, это геодезическая (большой круг) с максимальной широтой в середине линии, превышающей 40,1 градуса. Тогда точка находится к югу от линии.
  3. Или это просто не определено? Так как формат шейп-файла не имеет понятия кривых, а только прямые отрезки соединяют линии Линия должна быть уплотнена (точки добавлены вдоль линии), чтобы уточнить этот ответ.

Если я создам такой сценарий в QGIS, линия следует за 40 градусной параллелью и скажет мне, что ответ равен 1. Но я бы не воспринял это как определенный ответ и хотел бы услышать более твердый.


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

технически говоря, ребра многоугольника обычно называют «кольцами» (или LinearRing), которые являются замкнутыми линиями
Mike T

Ответы:


6

Кажется, что это прямая линия в любой проекционной системе, когда она создается. После этого он пересчитывается в каждой новой проекции, и программное обеспечение пытается сделать его «надежным». это довольно заметно вблизи полюсов: квадрат, нарисованный вокруг полюса в полярной азимутальной проекции, неизменно превращается в круг (то есть ранее прямые стороны становятся кривыми вогнутыми к полюсу) при повторном проецировании на другой полярный азимутал, или даже если центральный меридиан изменился. программное обеспечение просто не знает, как перейти от одной вершины к другой, поэтому оно берет то, что должно показаться ему логическим путем ...

Вот почему в таких ситуациях человек уплотняет вершины. Это привязывает ребра многоугольника к известным координатам, даже если между каждой вершиной будет происходить одинаковая интерполяция.


1

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

Esri немного поработал над этим, поэтому в ArcGIS 10 есть функции. Вот одна из разделов справки об этом: Создание геодезических объектов

Примечание: мои взгляды могут не совпадать с мнением моего работодателя (Esri).


1

Я не уверен насчет KML, но в шейп-файле линии, соединяющие вершины, действительно являются отрезками прямых линий. Из файла справки ArcGIS в разделе О редактировании шейп-файлов :

Создание объектов с кривыми в шейп-файлах

Шейп-файлы не поддерживают истинные параметрические кривые, включая круговые дуги, эллипсы и кривые Безье, поэтому эти фигуры хранятся в виде прямых сегментов ....

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

Если это опция, класс объектов базы геоданных может хранить истинные кривые:

В классе пространственных объектов базы геоданных формы хранятся в виде истинных кривых с единственными вершинами в конечных точках кривой.


0

На мой взгляд, это зависит от проекции. Из того, что я знаю, проекции Lat Long WGS84 рассматриваются как Plate Caree (Equirectangular - введите описание ссылки здесь ), в большинстве программ ГИС, поэтому параллели и меридианы считаются прямыми и перпендикулярными линиями. Если вы хотите измерить в этой проекции прямые линии, то вы должны применить технику линий большого круга. Но это применимо, только если вам нужно вычислить реальные расстояния. Так что +40,1 лат определенно не норд от +40 в проекции Plate Carre Lat Long.

Надеюсь, что это помогает, и, возможно, другие люди имеют разные мнения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.