我有一个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