moja prośba ma współrzędne, które tworzą wielokąt.
plist = []
...
plist.append(fromstr("POINT(%s)" %(value)))
...
p = Polygon(plist)
używając GeoDjango Chciałbym zaznaczyć wszystkie obiekty (places.objects.all()
) z tabeli zawartej w wielokącie.
przeglądając dokumentację, znajduję sposoby na sprawdzenie, czy pojedynczy punkt przecina się lub jest zawarty w wielokącie (p.mpoly.contains(pnt)
), ale nie coś, co działa na zbiorze punktów
czy istnieje sposób, aby to osiągnąć, czy powinienem do tego użyć procedury sklepu?
Odpowiedzi:
2 dla odpowiedzi № 1Myślę, że GeoQuerySet w ciągu filtr jest tym, czego szukasz:
places.objects.filter(geom__within=p)
Przy założeniu, że geom
jest twoją kolumną geometrii.
Ewentualnie możesz użyć zawarte ale uwzględnia to tylko obwiednię wielokąta, która może być dla Ciebie wystarczająca w zależności od przypadku użycia.