我正在用 Python 在 Google App Engine 上编写一个网站,并且我有一个 Location 数据存储实体,它有一个包含 GPS 坐标的字符串属性。我想让用户通过 GPS 坐标进行搜索,并且我想返回纬度或经度 +/- 10 点内的所有位置。基本上我想做的是在下面的代码中,但我不能以这种方式对 GPS 进行排序,一个是因为它是一个字符串,另一个是因为它是相同的属性。
inputlocation = self.request.get("userlocation")
g = geocoders.Google()
try:
place, (lat, lng) = g.geocode(inputlocation)
except ValueError:
geocodespot = g.geocode(inputlocation, exactly_one=False)
place, (lat, lng) = geocodespot[0]
GPSlocation = "("+str(lat)+", "+str(lng)+")"
GPSlocation = float(GPSlocation)
bound = 10
upper = GPSlocation + bound
lower = GPSlocation - bound
left = GPSlocation + bound
right = GPSlocation - bound
if GPSlocation:
locations = db.GqlQuery("select * from Location where GPSlocation>:1 and where GPSlocation>:2 and where GPSlocation <:3 and where GPSlocation <:4 order by created desc limit 20", upper, lower, left, right)
#example GPSlocation in the datastore = "(37.7699298, -93.4469157)"
你能想出任何方法来基本上做到这一点,而不必改变我的数据存储的设置方式吗?有没有什么方法可以获取这些信息,而不仅仅是制作两个属性,一个用于纬度,一个用于经度?