查找有关冰岛街道地址和邮政编码的信息

iceaddr的Python项目详细描述


ICEAddr

Build Status

查找冰岛街道地址和邮政编码

python(2和3)模块查找并获取有关冰岛街道地址和邮政编码的信息。底层数据取自Staðfangaskrá,由Registers IcelandCC-BY)维护的冰岛官方地址注册中心,IS 50V Örnefni来自National Land Survey of Iceland,以及Postur.is提供的邮政编码表。

安装

$ pip install iceaddr

示例

用邮政编码查找地址:

>>>fromiceaddrimporticeaddr_lookup>>>a=iceaddr_lookup('Austurstræti',number=14,postcode=101)>>>pprint.pprint(a)[{'bokst':'','byggd':1,'heiti_nf':'Austurstræti','heiti_tgf':'Austurstræti','hnitnum':10083839,'husnr':14,'landnr':100852,'lat_wgs84':64.147529217656,'long_wgs84':-21.9389394651385,'postnr':101,'serheiti':'','stadur_nf':'Reykjavík','stadur_tgf':'Reykjavík','svaedi':'Höfuðborgarsvæðið','svfnr':0,'tegund':'Þéttbýli','vidsk':'','x_isn93':356999.259090909,'y_isn93':408290.561363636}]

查找地名

的地址
>>>fromiceaddrimporticeaddr_lookup>>>a=iceaddr_lookup('Öldugötu',number=4,placename='Reykjavík')>>>pprint.pprint(a)[{'bokst':'','byggd':1,'heiti_nf':'Öldugata','heiti_tgf':'Öldugötu','hnitnum':10017023,'husnr':4,'landnr':100570,'lat_wgs84':64.1484874806941,'long_wgs84':-21.9452072913341,'postnr':101,'serheiti':'','stadur_nf':'Reykjavík','stadur_tgf':'Reykjavík','svaedi':'Höfuðborgarsvæðið','svfnr':0,'tegund':'Þéttbýli','vidsk':'','x_isn93':356699.479545455,'y_isn93':408411.468181818}]

街道和地名可以用主格或与格的形式提供(例如,'厄尔杜加塔'和'厄尔杜加图'都可以,selfoss'和'selfossi'也可以)。

请注意,iceaddr_lookup()返回一个与条件匹配的零个或多个地址的列表。

>>>fromiceaddrimporticeaddr_lookup>>>iceaddr_lookup('Dúfnahólar',number=10)[]>>>res=iceaddr_lookup('Öldugata',number=9)>>>[(a['postnr'],a['stadur_nf'])forainres][(101,'Reykjavík'),(220,'Hafnarfjörður'),(621,'Dalvík')]

对于自然搜索字符串查询,模块提供iceaddr_suggest()

>>>fromiceaddrimporticeaddr_suggest>>>>>>a=iceaddr_suggest('Öldugata 4, Rey')>>>[n['stadur_tgf']fornina]['Reykjavík','Reyðarfirði']>>>a=iceaddr_suggest('Öldugö',limit=200)>>>len(a)151

两个函数的默认结果限制为50。

按键

Key
bokstHouse letter
byggd
heiti_nfStreet name (nominative case), e.g. 'Öldugata'
heiti_tgfStreet name (dative case), e.g. 'Öldugötu'
hnitnum
husnrHouse number
landnr
lat_wgs84Latitude (WGS84 coordinates)
long_wgs84Longitude (WGS84 coordinates)
postnrPostcode (e.g. 101)
serheitiSpecial name
stadur_nfPlace name (nominative case), e.g. 'Selfoss'
stadur_tgfPlace name (dative case), e.g. 'Selfossi'
svaediArea (e.g. 'Höfuðborgarsvæðið', 'Norðurland')
svfnr
tegundType (either 'Þéttbýli' (urban) or 'Dreifbýli' (rural))
vidskAdditional information
x_isn93Coordinate X (ISN93)
y_isn93Coordinate Y (ISN93)

邮政编码

>>>fromiceaddrimportpostcodes_for_placename>>>postcodes_for_placename('Ísafjörður')[400,401]>>>postcodes_for_placename('Kópavogi')[200,201,202,203]>>>postcodes_for_placename('kópav',partial=True)[200,201,202,203]>>>
>>>fromiceaddrimportpostcodes>>>postcodes.get(400){'svaedi':'Vesturland og Vestfirðir','stadur_nf':'Ísafjörður','stadur_tgf':'Ísafirði','tegund':'Þéttbýli'}

地名(“ernefni”)

>>>fromiceaddrimportplacename_lookup>>>placename_lookup('Meðalfellsvatn')[{'flokkur':'Vatnaörnefni Mið','id':2339,'lat_wgs84':64.3112049,'long_wgs84':-21.5997926,'nafn':'Meðalfellsvatn'}]

如果发现多个地名匹配,则结果按大小排序,优先考虑城市和人口稠密地区。

版本历史记录

  • 0.3.3:添加少量地名,地名查找结果的智能排序(2019年1月8日)
  • 0.3.2:在Ornefni数据库(2019年1月2日)中添加市镇和各种地名
  • 0.3.1:从lm_data添加了更多地名,支持多线程使用
  • 0.3:添加了placename_lookup以查找冰岛地名的坐标+小修正(10/12/2018)
  • 0.2:添加了iceaddr_suggest,结果限制,更改了邮政编码dict的密钥名称(2018年10月22日)
  • 0.1.2:初次发布(2018年10月10日)

BSD许可证

版权所有(c)2018 Sveinbjorn Thordarson

以源和二进制形式重新分配和使用,无论是否修改, 如果满足以下条件,则允许使用:

  1. 重新发布源代码必须保留上述版权声明 条件列表和以下免责声明。

  2. 以二进制形式重新分发必须复制上述版权声明,此 文件和/或其他文件中的条件列表和以下免责声明 随分发提供的材料。

  3. 著作权人和著作权人的姓名或者名称不得 用于认可或推广从本软件衍生的产品,无需特别说明 事先书面许可。

本软件由版权所有者和贡献者“按原样”提供,并且 任何明示或默示保证,包括但不限于 对特定用途的适销性和适销性的担保被驳回。 在任何情况下,版权持有人或贡献者均不对任何直接的, 间接、附带、特殊、惩戒性或后果性损害(包括 不限于替代货物或服务的采购;使用、数据或 利润;或营业中断)无论是何种原因造成的,根据任何责任理论, 无论是合同、严格责任还是侵权(包括疏忽或其他) 以任何方式使用本软件,即使已通知 可能造成这种损害。

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

推荐PyPI第三方库


热门话题
从类访问属性时发生java编译错误   性能更好的Java序列化替代方案   java EhCache Spring XML集成命名空间   java如何使用表达式在JSP中检索新生成的图像   Java neo4j,REST和内存   java如何在mouseListener中删除和创建对象?   java在Hibernate中使用预定义前缀填充Id列   java无法从Elastic Beanstalk连接到Amazon SimpleDB   多线程通过单击JavaSwing中的按钮创建具有新名称的类的新对象   java如何在Kotlin中实现Memento模式   Android系列。对java进行排序。lang.NullPointerException   方法中的java重载构造函数内部类