【问题标题】:geo Django: get the neighbors of a housegeo Django:获取房屋的邻居
【发布时间】:2018-07-17 00:19:02
【问题描述】:

我有一个具有这些属性的房屋模型

centerpoint = PointField(srid=0, null=True, blank=True)
front_left = PointField(srid=0, null=True, blank=True)
front_right = PointField(srid=0, null=True, blank=True)
rear_left = PointField(srid=0, null=True, blank=True)
rear_right = PointField(srid=0, null=True, blank=True)
polygon = PolygonField(srid=0, null=True, blank=True)
direction = FloatField(null=True, blank=True)  # the direction this house faces, in degrees

我想把房子放在特定房子前面...我很难尝试使用距离和多边形__dwithin

我需要得到那些正在接触的和那些相对方向小于 160 度的:

我这样做:

House.objects.filter(polygon__touches=house_instance.polygon, direction__lt=160)

如何修改此查询以获取前面最多一个街区的房屋和距离我的参考房屋一所房子的房屋?

编辑: 所以“面向方向”实际上是包含房屋正门方向的方向场

这是我在邻居方面需要的图像,

我的多边形字段是房子的实际“面积”,以点为单位......

对不起,如果我的术语很古怪,我对此很陌生...

【问题讨论】:

  • “面向方向”是什么意思?你如何定义“在前面”?
  • 请发布房屋多边形样本(最好是geojson),标记参考房屋和目标房屋。
  • 我更新了我的问题@Udi
  • 我已经发布了一些建议。如果您可以上传房屋和街道的多边形,我可以尝试发送一些查询。

标签: python django gis geo geodjango


【解决方案1】:

如果你还持有街道的多边形(甚至线),你可以查询面向房子的街道,然后查询哪些房子面向这条街道。

一个很酷的解决方法是使用反向地理编码(例如,通过谷歌地图here 检索房屋的街道地址,然后检索其他房屋的街道地址并尝试匹配它们。这只有在反向地理编码服务时才有效拥有您所在地区的这些数据并且足够准确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多