0
我試圖使用GeoDjango在PointField
中存儲緯度/經度,然後查詢以公里爲單位的兩個PointField
之間的距離。有些東西不能使距離計算返回幾何距離而不是地理距離。我在模型中使用geography=True
,但似乎沒有幫助。我使用postgis
和postgresql
GeoDjango - lon/lat PointFields距離使用的是幾何學而不是地理學
型號:
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)
輸出:
Customer 1: SRID=4326;POINT (-79.2999999999999972 43.6000000000000014)
Customer 2: SRID=4326;POINT (-89.2000000000000028 48.3999999999999986)
Distance: 11.002272492535353
這是隻返回兩個點,而不是之間的幾何距離地理距離。有沒有人有任何建議,我怎麼能得到這個返回球體的KM距離?
謝謝!