使用esri、google、bing地图、美国人口普查局、openstreetmap、pelias和mapquest地理编码器的地理编码库

python-omgeo的Python项目详细描述


omgeo-python版本

python-omgeo是用python编写的地理编码抽象层。目前 支持的地理编码器:

安装

sudo pip install python-omgeo

文档

文档位于HTMLPDF格式。

用法示例

制作新的地理编码器,地理编码和地址:

>>> from omgeo import Geocoder
>>> g = Geocoder()
>>> result = g.geocode('340 12th St, Philadelphia PA')

查看结果:

>>> result
{'candidates': [
  <340 S 12th St, Philadelphia, PA, 19107 (-75.161461, 39.94532) EsriWGS>,
  <340 N 12th St, Philadelphia, PA, 19107 (-75.158434, 39.958728) EsriWGS>
 ],
 'upstream_response_info': [<EsriWGS 1054ms>]}

仔细查看地址候选对象中的信息:

>>> [c.__dict__ for c in result["candidates"]]
    [{'geoservice': 'EsriWGS',
      'locator': u'USA.AddressPoint',
      'locator_type': u'PointAddress',
      'match_addr': u'340 S 12th St, Philadelphia, PA, 19107',
      'score': 90.87,
      'wkid': 4326,
      'x': -75.161461,
      'y': 39.94532},
     {'geoservice': 'EsriWGS',
      'locator': 'interpolation',
      'locator_type': u'StreetAddress',
      'match_addr': u'340 N 12th St, Philadelphia, PA, 19107',
      'score': 90.87,
      'wkid': 4326,
      'x': -75.158434,
      'y': 39.958728}]

一些地理编码器(esriwgs和us census)可以返回除 完整地址:

>>> [{'geoservice': 'EsriWGS',
    'locator': 'interpolation',
    'locator_type': u'StreetAddress',
    'match_addr': u'340 N 12th St, Phila, Pennsylvania, 19107',
    'match_city': u'Phila',
    'match_country': u'USA',
    'match_postal': u'19107',
    'match_region': u'Pennsylvania',
    'match_streetaddr': u'340 N 12th St',
    'match_subregion': u'',
    'score': 90.1,
    'wkid': 4326,
    'x': -75.158384,
    'y': 39.958774}]

这些是可选的,它们的存在可能取决于地理编码器的响应而改变。

测试

存储库的根目录中有一个shell脚本,名为test.dummy.sh。 使用cp test.dummy.sh test.sh复制它。编辑test.sh以包括 从给定地理编码服务提供程序获取的API密钥。然后,跑 使用./test.sh的测试。

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

推荐PyPI第三方库


热门话题
重写时使用组合而非继承的java   java无法在Eclipse中创建“JSF托管Bean”类型的类。JavaServer缺少类别   java获取ArrayIndexOutOfBoundsException   java Appengine和Scala   带有@Column注释的java POJO出现400错误   java如何使用JPQL从SELECT操作获取第一行?   如何在Java中以所需格式(MM/DD/YYYY HH:MM:SS AM)创建SQL日期对象?   java这个程序打印了错误的reutls   java MappedBy引用未知目标实体属性两次?   java OpenGL JOGL相机透视图   java EAR项目无法读取持久性。来自JPA项目的xml   如何通过命令行[Java]杀死特定的Firefox配置文件   java无法解析构造函数“意图”   java计划每天运行2次的任务