GeoDjango Запрашивая location__within = poly использует Границы вместо Фактической Формы - PullRequest
1 голос
/ 04 июля 2019

Я использую GeoDjango, чтобы найти все точки внутри многоугольника, но, похоже, я использую границы (NMW, NME, SME, SMW), чтобы найти точки.Таким образом, он возвращает результаты, которые находятся за пределами первичной формы.

polygon = Polygon((18.3825363358424 -33.97219070578159,...))
Order.objects.filter(location__within=polygon)

Я бы хотел, чтобы запрос приводил точки внутри фигуры, а не внутри ее границ.

т.е. если * была моей формой;Я получаю очки в #, которые, кажется, предполагают, что он запрашивает границы вместо фактической формы.

**************
**************
******########
******########
******########

Скажите, пожалуйста, что я делаю не так?

1 Ответ

1 голос
/ 04 июля 2019

Хорошо, похоже, что это ограничения MySQL

https://docs.djangoproject.com/en/2.2/ref/contrib/gis/db-api/#mysql-spatial-limitations

Другими словами, хотя пространственные поиски, такие как содержимое, доступны в GeoDjango при использовании MySQL, возвращаемые результаты действительно эквивалентны тем, которые будут возвращены при использовании bbcontains в другом пространственном бэкэнде.

:( любой другой способ решения этой проблемы

...