GeoDjangoを使用してPointField
にlat/lonを格納し、次に2つのPointField
の距離をキロメートルで照会しようとしています。距離計算で地理的距離ではなく幾何学的距離が返されるように機能していないものがあります。私はgeography=True
をモデルに使用していますが、それは役に立たないようです。私はpostgis
とpostgresql
GeoDjango-lon/lat PointFields distanceは地理の代わりにジオメトリを使用しています
モデルを使用しています:
from django.contrib.gis.db import models
class Customer(models.Model):
location = models.CharField(max_length=100)
gis_location = models.PointField(u"longitude/latitude",
geography=True,
blank=True,
null=True)
テスト:
from django.contrib.gis.geos import Point
# some set up
customer1.gis_location = Point(-79.3, 43.6)
print('Customer 1:', customer1.gis_location)
customer2.gis_location = Point(-89.2, 48.4)
print('Customer 2:', customer2.gis_location)
distance = customer1.gis_location.distance(customer2.gis_location)
print('Distance: ', distance)
出力:これは代わりの2点間だけ幾何学的距離を返して
Customer 1: SRID=4326;POINT (-79.2999999999999972 43.6000000000000014)
Customer 2: SRID=4326;POINT (-89.2000000000000028 48.3999999999999986)
Distance: 11.002272492535353
地理的距離。私はどのように私は回転楕円体でKMsの距離を返すためにこれを得ることができるかのためのアドバイスを誰も持っていますか?
ありがとうございます!