Есть ли определение того, как линии соединяют вершины в формате шейп-файла?
В простейшем случае представьте линию только с 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 к северу или югу от линии?
- Если мы рассмотрим линии, которые линейно интерполируются в латлонном пространстве, то это следует за 40 градусной параллелью (маленький круг), и точка находится к северу от линии.
- Если мы считаем, что линии - это кратчайшие пути на поверхности Земли, это геодезическая (большой круг) с максимальной широтой в середине линии, превышающей 40,1 градуса. Тогда точка находится к югу от линии.
- Или это просто не определено? Так как формат шейп-файла не имеет понятия кривых, а только прямые отрезки соединяют линии Линия должна быть уплотнена (точки добавлены вдоль линии), чтобы уточнить этот ответ.
Если я создам такой сценарий в QGIS, линия следует за 40 градусной параллелью и скажет мне, что ответ равен 1. Но я бы не воспринял это как определенный ответ и хотел бы услышать более твердый.
shapefile
great-circle
geodesic
Франсуа
источник
источник
Ответы:
Кажется, что это прямая линия в любой проекционной системе, когда она создается. После этого он пересчитывается в каждой новой проекции, и программное обеспечение пытается сделать его «надежным». это довольно заметно вблизи полюсов: квадрат, нарисованный вокруг полюса в полярной азимутальной проекции, неизменно превращается в круг (то есть ранее прямые стороны становятся кривыми вогнутыми к полюсу) при повторном проецировании на другой полярный азимутал, или даже если центральный меридиан изменился. программное обеспечение просто не знает, как перейти от одной вершины к другой, поэтому оно берет то, что должно показаться ему логическим путем ...
Вот почему в таких ситуациях человек уплотняет вершины. Это привязывает ребра многоугольника к известным координатам, даже если между каждой вершиной будет происходить одинаковая интерполяция.
источник
В спецификации шейп-файла нет информации об этом. Как соединить две вершины строго зависит от программного обеспечения, отображающего или иным образом обрабатывающего шейп-файл. Вы можете добавить информацию в поле атрибута, которое затем может быть использовано программным обеспечением, но это повлияет на всю функцию.
Esri немного поработал над этим, поэтому в ArcGIS 10 есть функции. Вот одна из разделов справки об этом: Создание геодезических объектов
Примечание: мои взгляды могут не совпадать с мнением моего работодателя (Esri).
источник
Я не уверен насчет KML, но в шейп-файле линии, соединяющие вершины, действительно являются отрезками прямых линий. Из файла справки ArcGIS в разделе О редактировании шейп-файлов :
Если это опция, класс объектов базы геоданных может хранить истинные кривые:
источник
На мой взгляд, это зависит от проекции. Из того, что я знаю, проекции Lat Long WGS84 рассматриваются как Plate Caree (Equirectangular - введите описание ссылки здесь ), в большинстве программ ГИС, поэтому параллели и меридианы считаются прямыми и перпендикулярными линиями. Если вы хотите измерить в этой проекции прямые линии, то вы должны применить технику линий большого круга. Но это применимо, только если вам нужно вычислить реальные расстояния. Так что +40,1 лат определенно не норд от +40 в проекции Plate Carre Lat Long.
Надеюсь, что это помогает, и, возможно, другие люди имеют разные мнения.
источник