我刚刚在我的开发机器上启动并运行了 GeoDjango。问题是我无法让距离查询正常工作。无论我使用什么 SRID,距离结果都是完全关闭的。这是一个例子。
>>> from django.contrib.gis.measure import D
>>> from app.models import Place
>>> from django.contrib.gis.geos import Point
>>> qs = Place.objects.all()
>>> point = Point(-118, 34)
>>> qs.filter(coordinates__distance_lte=(point, D(m=1)))
[<Place: 7-Eleven>, <Place: Arthur Murray Dance Studio>, <Place: Costco>, <Place: AMC Century City 15>, <Place: 24 Hour Fitness>, <Place: Ralphs>, <Place: Houston's Restaurant>, <Place: CVS/pharmacy>, <Place: Shaky Alibi>, <Place: Sephora>, <Place: Trader Joe's>]
问题是这些地方距离 1m 远point
。
我试着玩弄它,但运气不佳。这是另一个 SRID 的示例。
>>> qs = Place.objects.all().transform(3786)
>>> point = Point(-118, 34, srid=3786)
>>> qs.filter(coordinates__distance_lte=(point, D(m=1)))
[<Place: 7-Eleven>, <Place: Arthur Murray Dance Studio>, <Place: Costco>, <Place: AMC Century City 15>, <Place: 24 Hour Fitness>, <Place: Ralphs>, <Place: Houston's Restaurant>, <Place: CVS/pharmacy>, <Place: Shaky Alibi>, <Place: Sephora>, <Place: Trader Joe's>]
我有一种感觉,我只是选择了错误的 SRID,但我在网上遇到的任何一个都没有工作,或者给出的任何响应都没有,甚至是适度有用的。
任何帮助是极大的赞赏!