我剛剛安裝了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