geodjango 检查 PolygonField 中的 PointField
geodjango check PointField in PolygonField
我有两个 django 模型:
class Region(models.Model):
geometry = models.PolygonField()
class Position(models.Model):
coordinates = models.PointField()
我正在尝试检查一个位置是否在地理上包含在一个地区内:
def check(region, position):
return position.coordinates.intersect(region.geometry)
但它总是 return False,即使 Position 包含在 Region 中(我正在使用 django-leaflet 渲染 PointField 和 RegionField)。
我也试过使用:
def check(region, position):
return position.coordinates.within(region.geometry)
但目前还没有结果。这是我使用的测试数据 (geojson):
{"coordinates": [46.2071762, 11.1245718], "type": "Point"}
{"coordinates": [[[11.102371215820312, 46.21939582902924], [11.106491088867188, 46.22111800038881], [11.134214401245117, 46.22188999070486], [11.140050888061523, 46.21791115519151], [11.141080856323242, 46.21422899084459], [11.137990951538086, 46.207695510993354], [11.13412857055664, 46.20122065978115], [11.12485885620117, 46.198844376182535], [11.102371215820312, 46.21939582902924]]], "type": "Polygon"}
关于问题可能出在哪里的任何提示?
提前致谢!
你的错误是合乎逻辑的,我guess.Point的经纬度应该调换一下。
我是说
{"coordinates": [11.1245718, 46.2071762], "type": "Point"}
而不是
{"coordinates": [46.2071762, 11.1245718], "type": "Point"}
我有两个 django 模型:
class Region(models.Model):
geometry = models.PolygonField()
class Position(models.Model):
coordinates = models.PointField()
我正在尝试检查一个位置是否在地理上包含在一个地区内:
def check(region, position):
return position.coordinates.intersect(region.geometry)
但它总是 return False,即使 Position 包含在 Region 中(我正在使用 django-leaflet 渲染 PointField 和 RegionField)。 我也试过使用:
def check(region, position):
return position.coordinates.within(region.geometry)
但目前还没有结果。这是我使用的测试数据 (geojson):
{"coordinates": [46.2071762, 11.1245718], "type": "Point"}
{"coordinates": [[[11.102371215820312, 46.21939582902924], [11.106491088867188, 46.22111800038881], [11.134214401245117, 46.22188999070486], [11.140050888061523, 46.21791115519151], [11.141080856323242, 46.21422899084459], [11.137990951538086, 46.207695510993354], [11.13412857055664, 46.20122065978115], [11.12485885620117, 46.198844376182535], [11.102371215820312, 46.21939582902924]]], "type": "Polygon"}
关于问题可能出在哪里的任何提示? 提前致谢!
你的错误是合乎逻辑的,我guess.Point的经纬度应该调换一下。 我是说
{"coordinates": [11.1245718, 46.2071762], "type": "Point"}
而不是
{"coordinates": [46.2071762, 11.1245718], "type": "Point"}