我使用户界面显示加入与Facebook的整合,并使合并与类别搜索和定位:如何表示地理位置
这带来了一些问题,我不仅与Facebook的整合,但也与地点。我不取从数据存储的位置,我只是把他们在纯HTML:
<select name="w" id="searcharea">
<option value="1" >Entire India</option>
<option value="2" > Andaman & Nicobar Islands</option>
<option value="3" > Andhra Pradesh</option>
等。我们看到,选项值没有任何意义:1,2,3没有意义,我只是把那里的数字。数据存储区中的记录可以基于经度+纬度+半径进行匹配,因此例如像?lat=-22.45&lon=-43.12&r=294200
这样的URL是与里约热内卢与周围环境相匹配的参数化,在这种情况下半径有点随意选择以匹配里约热内卢而不是Sao保罗。将经度和纬度四舍五入至小数点后两位也被认为“足够好”。但是,如何在HTML和数据存储之间进行映射? HTML选项值只有一个值,经度+纬度+半径是三个值。我想找到一个涵盖所有内容的解决方案,无需添加我自己的地理代码。经度,纬度和半径是国际标准,所以自然我希望避免为地点创建我自己的ID。我可能会做一个算法,选项值的值是一个数字解码为三个值,例如选项值123456789876将解码为经度1234,纬度5678和半径9876.你能推荐任何解决方案和/或告诉我其他可能的解决方案有哪些优点和缺点?如果你想检查我所说的website,你可以通过这个链接koolbusiness.com
我想保持“兼容”与其他解决方案,如geomodel和谷歌地图,这样也允许用户选择“管理区域“,”城市“,”国家“,因为他们已经制作并更新了该结构及其比例,而我已使用Python库地理模型为我的实体启用地理位置:
class A(GeoModel,search.SearchableModel):
primary_image=blobstore.BlobReferenceProperty()
postaladress=db.PostalAddressProperty(indexed=False,verbose_name="postaladdress")
...
实现与地质模型基本搜索的工作原理:
m=int(self.request.get('r')) if self.request.get('r') else 804670#radius
lat = self.request.get('lat')
lon = self.request.get('lon')
articles = A.proximity_fetch(A.all(),db.GeoPt(lat, lon),max_results=PAGESIZE+1, max_distance=m)
articles = sorted(articles, key=lambda x: x.modified, reverse=True)
但是,如何将视图与后端集成,因为选项值只允许单个值?我应该编码3个值(lon,lat,radius)编码为单个值吗?或者其他解决方案? 谢谢
非常感谢 –