PostGIS と GeoDjango をインストールしました。すべてがうまくいきましたが、今は問題があり、その理由がわかりません。
私はこのようなモデルを持っています:
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 km である必要がありますが、これを行うと:
results = Shop.objects.distance(pnt)
print results[0].distance.km
私の結果では常に約 60 km が多すぎるため、190 km が返されます。両方のポイントの SRID は 4326 です...おそらく何か問題がありますか?
そして、私がこれを行うとき、おそらく別の興味深い事実:
pnt.distance(shop.point)
結果として 1.713790... が返されます。
私は何を間違っていますか?Python + Djangoで使用する代替手段はありますか? より良い解決策があれば、PostGIS を使用する必要はありません。
あなたが私を助けてくれることを願っています!
クリス