地理编码的django集成(使用geocodio)
dj-geocoding的Python项目详细描述
django的简单地理编码功能。当前对地理编码服务的支持
阅读Read the Docs上的完整文档。
安装
安装DJ地理编码:
pip install dj-geocoding
然后在项目中使用:
import dj-geocoding
将地理编码服务API凭据添加到settings.py文件:
GEOCODIO_API_KEY="SOMEAPIKEY"
型号
如果不使用PASGIS,请将可选模型MIXIN应用到模型中:
from dj_geocoding.models import GeoBase class MyModel(GeoBase, models.Model): pass
这将添加以下字段:
latitude = models.DecimalField(decimal_places=15, max_digits=18, null=True, blank=True) longitude = models.DecimalField(decimal_places=15, max_digits=18, null=True, blank=True)
添加地理代码方法:
def geocode(self, \*args, \**kwargs): return geocode()
您应该在模型中扩展它,提供 将提取地址:
def geocode(self): return super(MyModel, self).geocode('address')
您也可以选择提供单个地址的分隔符:
def geocode(self): return super(MyModel, self).geocode('street_address', 'city', 'state', seperator=", ")
以及点属性的其他属性属性。
批量地理编码
函数接受一个queryset并对其成员对象进行地理编码。
注意
模型必须实现一个点类型字段,该字段的行为类似于 点域。
示例:
geocoded_qs = bulk_geocode(MyModel.objects.all())
指定字段名:
geocoded_qs = bulk_geocode(MyModel.objects.all(), field='point')
经理
manager类使用地理代码方法实现子类queryset:
MyModel.objects.all().geocode()
这将返回符合 地理编码服务的限制。这是一个方便的接口 批量地理代码函数。
管理站点
geocodedfilter筛选器可用于筛选基于管理员的位置 它们是否被地理定位。
< > > GeolocateMixin > /cTIT>类可以添加到您的历史
0.2.1(2014-12-02)
- 消除了对管理操作中querysetgeocode方法的依赖
- 添加文档
0.2.0(2014-09-08)
- 修改具有地理位置的方法,删除属性状态
- 添加了列表筛选器类geocodedfilter
0.1.1(2014-08-26)
- 在设置点中处理单个无值的错误修复
0.1.0(2014-08-26)
- pypi上的第一个版本。