这是出现在@Nargiza:3d distance calculations with GeoDjango解决此问题的道路上的意外行为。
关注Distance 功能上的Django文档:
接受两个地理字段或表达式,返回它们之间的距离,作为距离对象。
从Distance 对象,我们可以获得supported units中每一个的距离。
可是:
让模特成为:
class MyModel(models.Model):
...
coordinates = models.PointField()
然后是以下内容:
p1 = MyModel.objects.get(id=1).coordinates
p2 = MyModel.objects.get(id=2).coordinates
d = Distance(p1, p2) # This is the function call,
# so d should be a Distance object
print d.m
应以米为单位打印p1
和p2
之间的距离。
相反,我们收到以下错误:
AttributeError: 'Distance' object has no attribute 'm'
我们最终找到了一种解决方法(d = Distance(m=p1.distance(p2))
),但问题仍然存在:
为什么Distance
功能没有返回Distance
对象?
这是一个错误,还是我们错过了什么?
提前感谢您的时间。