방금 GeoDjango와 함께 PostGIS를 설치했습니다. 모든 것이 잘 작동했지만 지금은 문제가 있으며 그 이유를 찾을 수 없습니다.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)')
이 점 사이의 거리가 ~ 125km에 대해해야한다,하지만 난이 수행 할 때
results = Shop.objects.distance(pnt)
print results[0].distance.km
을 너무 많이 항상 약 60km 받고 있어요 내 결과로 190km를 돌려줍니다! 두 지점의 내 SRID는 4326입니다. 아마도 그 점에 문제가 있습니까?
그리고 어쩌면 또 다른 흥미로운 사실
, 내가 이렇게 :pnt.distance(shop.point)
그 결과로 ... 1.713790 반환합니다.
내가 뭘 잘못하고 있니? 파이썬 + django 함께 사용할 수있는 모든 대안? 더 나은 솔루션이 있다면 PostGIS를 사용할 필요가 없습니다.
희망을 보내주세요.
크리스
답장을 보내 주셔서 감사합니다. 포인트를 바꿔 쓰려고했지만, 어딘가에 대해 읽으면서 이미 게시물 앞에 시도했습니다. 내가 그들을 교환 할 때 나는 약 5000 개의 이상한 물건을 얻는다! 어떤 아이디어? geerjango에서 해결책을 찾지 못하면 내가 querys를 수동으로 수행 할 것입니다. – Chris
그 중 하나를 바꿀 수 있다면 5925.95 KM을 정확하게 얻을 수 있습니다. 당신은 잘못 저장했습니다. –
오케이, 실수 한거야, 지금 작동, 감사합니다 :)! – Chris