我刚刚用 GeoDjango 安装了 PostGIS。一切正常,但现在我遇到了问题,无法找出原因。
我有这样的模型:
from django.contrib.gis.db import models
class Shop(models.Model):
name = models.CharField(max_length=80)
point = models.PointField(null=True, blank=True)
objects = models.GeoManager()
我将其指向这个位置(49.794254,9.927489)。然后我创建一个这样的点:
pnt = fromstr('POINT(50.084068 8.238381)')
这些点之间的距离应该约为 125 公里,但是当我这样做时:
results = Shop.objects.distance(pnt)
print results[0].distance.km
我的结果总是超过 60 公里,所以它返回 190 公里!我这两点的 SRID 都是 4326 ......可能有什么问题吗?
当我这样做时,也许还有另一个有趣的事实:
pnt.distance(shop.point)
它返回 1.713790... 结果。
我究竟做错了什么?我可以使用 python + django 的任何替代方案吗?如果有更好的解决方案,我不需要使用 PostGIS。
希望你能帮我!
克里斯