Я использую GeoDjango с PostGIS и пытаюсь использовать многоугольник для получения записей из базы данных, которая попадает в него.
Если я определяю многоугольник, который больше половины площади земли, он предполагает, что «внутри» моего многоугольника является меньшей областью, которую я обозначил как «снаружи», и возвращает только результаты, находящиеся вне его.
Я могу просто использовать эту меньшую неправильную область, чтобы исключить результаты. Кажется, Polygon.area знает, что я собираюсь сделать, поэтому я могу использовать это, чтобы определить, когда сделать мой поиск включающим или исключительным. Я чувствую, что эта проблема, вероятно, распространена, есть ли лучший способ ее решить?
Обновление: Если 180-градусная долгота находится внутри моего многоугольника, это вообще не работает. Кажется, в этот раз виноват GEOS. Это изображение показывает, что я считаю причиной. Зеленый - это полигон, который я определяю, красный - это то, как он, кажется, интерпретирует его.
Опять же, это похоже на проблему, которая часто возникает, и для которой создаются библиотеки типа GEOS. Есть ли способ?