В PostGIS многоугольник размером больше половины земного шара рассматривается как противоположный

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

Если я определяю многоугольник, который превышает половину площади Земли, он предполагает, что «внутренняя часть» моего многоугольника - это меньшая область, которую я считал «внешней», и возвращает только те результаты, которые находятся за ее пределами.

Я могу просто использовать эту меньшую неправильную область, чтобы исключить результаты. Многоугольник. area, похоже, знает, что я собираюсь сказать, поэтому я могу использовать это, чтобы определить, когда сделать мой поиск инклюзивным или исключительным. Мне кажется, что эта проблема, вероятно, обычная, есть ли лучший способ ее решить?

Обновление: Если 180 градусов долготы находятся внутри моего многоугольника, это вообще не работает. Похоже, на этот раз виновата GEOS. Это изображение показывает, что я считаю причиной. Зеленый - это многоугольник, который я определяю, Красный - это то, как он, кажется, интерпретирует его. Polygons on earth Опять же, это похоже на проблему, которая часто возникает, и библиотеки, такие как GEOS, призваны решать. Есть ли способ?

6
задан Jake 20 April 2011 в 23:20
поделиться