我正在使用geodjango
.
我有一个这样的模型:
class WorldBorder(models.Model):
name = models.CharField(max_length=50)
mpoly = models.MultiPolygonField()
我的数据库中可以有 2 个或更多具有重叠边框的对象。
如何确定某些对象是否具有重叠边框?
如何获得具有重叠边界的对象的查询集?
谢谢
您有 2 个选择,具体取决于您要实现的目标:
__overlaps
查找:
使用示例:
an_mpoly = WorldBorder.objects.get(name='a_name').mpoly
overlapping_mpolys = WorldBorder.objects.filter(mpoly__overlaps=an_mpoly)
现在overlapping_mpolys
是一个QuerySet,包含每一个WorldBorder
对象是谁的mpoly
重叠与mpoly
一个的WorldBorder
与对象name='a_name'
。
object to object
重叠检查,您可以使用 GEOS APIoverlaps
方法:
使用示例:
mpoly_1 = WorldBorder.objects.get(name='name_1').mpoly
mpoly_2 = WorldBorder.objects.get(name='name_2').mpoly
if mpoly_1.overlaps(mpoly_2):
print("{} and {} are overlapping".format(mpoly_1, mpoly_2))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句