使用 Django 如何确定包含一个点的多边形?

3

我需要快速确定一组点属于哪些多边形,这与Django 1.9有关的技术相关。

第一个选择是循环遍历所有多边形并检查它们包含哪些点:

for countrypolygon in countrypolygons:
    placesinthecountry = Place.objects.filter(lnglat__intersects=countrypolygon.geom)

这需要花费很多时间,因为我需要循环遍历许多多边形。

是否可以相反地进行操作,即循环遍历每个点并立即获取它所包含的多边形?

1个回答

6

是的,您可以使用 contains

for point in my_points:
    polygons = MyModel.objects.filter(geom__contains=point.geom)  

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接