用 Django 识别哪个多边形包含一个点?
Identify which polygon contains a point with Django?
我需要在 Django 1.9 中快速识别一组点属于哪些多边形。
第一个选项是遍历所有多边形并检查它们包含哪些点:
for countrypolygon in countrypolygons:
placesinthecountry = Place.objects.filter(lnglat__intersects=countrypolygon.geom)
这需要很多时间,因为我需要遍历很多多边形。
是否可以做相反的事情,即遍历每个点并立即得到包含它的多边形?
是的,您可以使用 contains
:
for point in my_points:
polygons = MyModel.objects.filter(geom__contains=point.geom)
我需要在 Django 1.9 中快速识别一组点属于哪些多边形。
第一个选项是遍历所有多边形并检查它们包含哪些点:
for countrypolygon in countrypolygons:
placesinthecountry = Place.objects.filter(lnglat__intersects=countrypolygon.geom)
这需要很多时间,因为我需要遍历很多多边形。
是否可以做相反的事情,即遍历每个点并立即得到包含它的多边形?
是的,您可以使用 contains
:
for point in my_points:
polygons = MyModel.objects.filter(geom__contains=point.geom)