我刚刚安装了PostGIS和GeoDjango。一切正常,但现在我有一个问题,无法找出原因。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。
希望你能帮助我!
克里斯
感谢您的答复,我试图交换点,但我已经试过这个帖子之前,因为我在某处读。当我交换它们时,我得到一个5000左右的值,奇怪的东西!有任何想法吗? 你张贴的查询工作正常,如果我没有找到geodjango的解决方案我会手动查询... – Chris 2012-04-13 22:23:21
如果我只交换其中一个我得到5925.95公里是确切的,所以看起来那些你存储的是错误的。 – 2012-04-13 22:33:02
好的,做错了,现在工作,谢谢:)! – Chris 2012-04-15 12:29:14