用于保存和处理地理点的轻量级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:不解析XML的简单XML。例外   KIE Workbench的java自定义UI   java将元素从bucket移动到LinkedList,但有一个元素被完全删除   如何将java stream collect转换为scala   java运行AsynkTask多次不工作   java组织。xml。萨克斯。SAXParseException:cvccomplextype。2.4.c:匹配的通配符是严格的   java是一种计算排序算法所需时间的合适方法   java在O(logn)时间内对排序整数数组中具有相同数字的数字进行计数   xpages从当前数据库javaAgent调用另一个数据库的javaAgent   java如何在instagram中上传特定位置的所有照片   JavaApachePOI可以有效地删除多个列   java创建的对象数   java我可以在关闭连接时关闭Oracle JDBC自动提交吗?