Когда преобразовывать координаты GPS - PullRequest
0 голосов
/ 07 сентября 2018

У меня нет реального опыта работы с данными ГИС, поэтому, когда то, что я считал простой проблемой, оказалось более тонким, я опасно не готов!

Я хочу иметь возможность классифицировать положение GPS как внутри / снаружи многоугольника, определенного координатами GPS. Оказывается, это хорошо известная (но не мне) проблема точки в многоугольнике . Я прочитал много вопросов / ответов по https://gis.stackexchange.com/ (и здесь, например, this ).

Shapely кажется хорошим решением, но предполагает, что координаты находятся в одной и той же декартовой плоскости, т.е. не GPS? Поэтому сначала мне нужно преобразовать свои GPS-точки в UTM .

Нужно ли вводить этот дополнительный шаг, однако, если сравниваемые точки (т.е. точка и многоугольник) всегда будут естественным образом находиться в одной и той же зоне UTM. Они всегда должны быть в одном и том же городе, так что я могу просто оставить их как GPS и использовать координаты широты / долготы в Shapely?

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

1 Ответ

0 голосов
/ 07 сентября 2018

Точка в полигоне уже предполагает 2D-ограничение, а GPS-координаты 3D. Сразу же, это доставляет вам неприятности.

Простой обходной путь - сбросить высоту GPS, уменьшив ее до двухмерных координат поверхности. Ваша следующая проблема в том, что ваша 2D поверхность теперь является сферой. На сферической поверхности многоугольник делит поверхность на две части, но не существует очевидного «внутри». Есть левая сторона и правая сторона, которая следует из порядка точек в многоугольнике, но ни одна из сторон не является очевидной "внутри". Рассматривайте экватор как тривиальный многоугольник - какое полушарие находится «внутри» экватора?

Далее следует вопрос о ребрах многоугольника. По определению это прямые, то есть отрезки. Но линии на сферической поверхности странные - они обычно известны как большие круги . И любые два больших круга пересекаются ровно в двух точках. Это не так, как ведут себя декартовы линии. Хуже того, уравнения для большого круга не являются линейными при выражении в координатах GPS, потому что это пары долгота / широта.

Я могу представить, что в этот момент вы чувствуете себя немного смущенным. Возможно, вы захотите взглянуть на это с другой стороны - у нас похожая проблема с картами. Глобальные карты по определению являются попытками сгладить эту неплоскую поверхность. Поскольку это не совсем возможно, вы получите картографических проекций . Вы также можете проецировать угловые точки ваших многоугольников на такие проекции. А поскольку проекции плоские, вы можете нарисовать края на проекции. Теперь вы видите проблему визуально: в двух разных проекциях одинаковые многоугольники будут содержать разные части мира!

Итак, поскольку мы согласились с тем, что в реальном мире ребра многоугольников представляют собой большие круги, мы должны действительно рассмотреть проекцию, которая сохраняет большие круги прямыми. Существует ровно одно семейство проекций, обладающее этим свойством, и это Гномоническая проекция . Это семейство проекций, потому что вы можете выбрать любую точку в качестве центра.

Как это происходит, у нас здесь есть одна естественная точка: точка GPS, которую мы рассматриваем. Если вы поместите это в центр, нарисуйте гномическую проекцию вокруг него, спроецируйте края многоугольника, а затем нарисуйте многоугольник, и вы получите точное решение.

За исключением того, что настоящая земля не сферическая. Сожалею. В любом случае, насколько точным должен был быть тест?

...