用于保存和处理地理点的轻量级django地理字段。它支持通过地理哈希搜索附近的点

django-geofield的Python项目详细描述


Django Geofield
==
![](https://api.travis-ci.org/joway/django-geofield.svg?branch=master)

用于保存和处理地理点的轻量级django地理字段。它支持通过地理哈希搜索附近的点。

quick start
--


0。安装django geofield

pip安装django geofield

1。在模型中定义geoppositionfield如下::


类点(models.model):

位置=geoppositionfield(db_index=true)


2。运行“python manage.py makemigrations”和“python manage.py migrate”,使其生效

3。该字段将使用字符串将地理点保存到数据库中,如下所示:

position=geopposition(lat,lon,precision=6))


'wtmm7w,30.491457473054005333779059583321327222290625120.04238742548123317547119222586566162109375'

4。如果要查询其geohash与给定点完全匹配的点,则可以:



points_matched=point.objects.filter(position_uu geoprecise=pos.position.geohash)


如果要查询展开区域中的点以消除geohash的边际误差,您可以:

pos=point.objects.get(id=1)


points=point.objects.filter(position\u geosearch=pos.position.geohash)

“\u geosearch”查找将发现所有点都有9个(1个中心点和8个扩展点)geohash中的一个。



如果要查询特定范围内的点,应查找geohash表以获取所需的geohash长度,然后只搜索裁剪的长度。



points=point.objects.filter(position\geosearch=pos.position.geohash[0:4])

![](http://images.cnitblog.com/blog/522490/201309/09185913-9F6F65FC3D3C40ECB3328970831C625C.png)


你应该自己编写代码来过滤结果。


>关于geohhash
---
>




[wikipedia(http://en.wikipedia.org/wiki wiki/geohhash)关于geohhash










<
>Python
-“2.7”
-“3.2”
-“3.3.3”
>-“3.4”
-“3.4”
-“3.5”
-“3.5”
-“3.3.3.3”<.5-dev“3.5开发分支
-“每晚”#目前指向3.6-dev



谢谢
----



许可证
----

mit

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何强制用户在允许访问活动之前处理对话框?我的许可证代码怎么了?   java ArraysList作为JSON   mysql如何在java中创建包含多个可选where子句的搜索语句?   java如何让Apache Camel在“直接”路径的末尾删除文件?   使用socket在两个Androids之间进行java实时数据传输。IO(websocket)和4G   如何在java中实现两个CORBA服务器之间的通信   会话树xml表示为java对象   java Skype4Java编号swtwin323325   java RecyclerView getAdapterPosition()不工作:第一次单击返回正确位置,第二次单击返回1   java在$TOMCAT/conf/context上为JNDI设置资源。xml   java为什么第二个矩形冲突在第一个矩形冲突时不起作用?   JScrollPane上的java JTextArea未出现在JPanel上   java如何将实现的PriorityQueue打印为字符串?   jpa使用Jersey更新用户角色RESTJava(JAXRS)