我有一個django模型,它有一個名爲LocationField
的自定義屬性。在Django返回附近的位置
class List(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=200)
location = LocationField(blank=True, max_length=255)
其中的值存儲爲格式爲latitude, longitude
的字符串。從我的模板中,我傳遞一個url,如下所示:/nearby?lat='+somevalue+'&long='+somevalue
現在,我想根據傳遞的值返回List
附近的條目。
爲此,我寫了一個views.py功能如下:
def nearby(request):
if request.GET['lat']:
lat = request.GET['lat']
longitude = request.GET['long']
first_query = Playlist.objects.filter(location__istartswith=lat)
for f in first_query:
l = f.index(',')
n_string = f[l:]
爲了澄清我做了什麼,first_query
回報具有相同latitude
開始的所有條目。但是,現在我也想匹配longitude
,這就是爲什麼我運行該for loop
並搜索我的LocationField
中分隔latitude,longitude
的逗號索引。 n_string
取LocationField
的子串,然後我打算將它匹配到我的longitude
變量。
我的問題是兩個部分:
- 如何生成的緯度相匹配的查詢?如何將其返回模板嗎?
- 如何檢查該區域周圍2平方公里的區域?
是否有django軟件包?
非常感謝!第一個工作完美。我正在使用另一個完全不準確的公式! – Newtt 2014-09-04 08:51:30
可能有這樣的不準確性的幾個原因:例如,鑄造問題我在查詢而不是'%2f'查找'%d'的錯誤,另一個問題可以使用常量'6367'作爲半徑,對於某些地理定位不準確。見這裏:http://www.cs.nyu.edu/visual/home/proj/tiger/gisfaq.html – andi 2014-09-04 09:11:27
是在半徑in a)以米爲單位? – wswld 2017-09-18 13:51:14