查找有关冰岛街道地址和邮政编码的信息
iceaddr的Python项目详细描述
ICEAddr
查找冰岛街道地址和邮政编码
python(2和3)模块查找并获取有关冰岛街道地址和邮政编码的信息。底层数据取自Staðfangaskrá,由Registers Iceland(CC-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 | |
---|---|
bokst | House letter |
byggd | |
heiti_nf | Street name (nominative case), e.g. 'Öldugata' |
heiti_tgf | Street name (dative case), e.g. 'Öldugötu' |
hnitnum | |
husnr | House number |
landnr | |
lat_wgs84 | Latitude (WGS84 coordinates) |
long_wgs84 | Longitude (WGS84 coordinates) |
postnr | Postcode (e.g. 101) |
serheiti | Special name |
stadur_nf | Place name (nominative case), e.g. 'Selfoss' |
stadur_tgf | Place name (dative case), e.g. 'Selfossi' |
svaedi | Area (e.g. 'Höfuðborgarsvæðið', 'Norðurland') |
svfnr | |
tegund | Type (either 'Þéttbýli' (urban) or 'Dreifbýli' (rural)) |
vidsk | Additional information |
x_isn93 | Coordinate X (ISN93) |
y_isn93 | Coordinate 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
以源和二进制形式重新分配和使用,无论是否修改, 如果满足以下条件,则允许使用:
重新发布源代码必须保留上述版权声明 条件列表和以下免责声明。
以二进制形式重新分发必须复制上述版权声明,此 文件和/或其他文件中的条件列表和以下免责声明 随分发提供的材料。
著作权人和著作权人的姓名或者名称不得 用于认可或推广从本软件衍生的产品,无需特别说明 事先书面许可。
本软件由版权所有者和贡献者“按原样”提供,并且 任何明示或默示保证,包括但不限于 对特定用途的适销性和适销性的担保被驳回。 在任何情况下,版权持有人或贡献者均不对任何直接的, 间接、附带、特殊、惩戒性或后果性损害(包括 不限于替代货物或服务的采购;使用、数据或 利润;或营业中断)无论是何种原因造成的,根据任何责任理论, 无论是合同、严格责任还是侵权(包括疏忽或其他) 以任何方式使用本软件,即使已通知 可能造成这种损害。