尝试使用单个文本框构建一个对话框,其中用户可以(在其他中)仅在德国输入街道名称,然后对话框应显示该街道名称可能的所有邮政编码(PLZ)的列表在整个德国。所以基本上我需要一个德国所有PLZ +街道名称组合的清单,首先是大城市的街道(如果可能的话,首先是更大的街道)。我尝试了几种不同的HERE API,但在使用街道名称进行搜索时,无法产生任何结果,并且国家/地区设置为德国。如果我另外填写城市(街道名称+城市),那么我得到了一个很好的回应我所需要的。那么,是否有任何方法可以获得仅包含街道名称和国家/地区(其中country =' DEU')且没有任何城市的查询结果?搜索需要与位置无关,只能假设用户在德国。
这种简约搜索似乎可以在here.com地图网站上运行。 here.com网站唯一的问题是它将我定位在一个错误的城市,因此它给我的3个结果与我的位置并不相关。例如,我在柏林和here.com找到我在莱比锡,我正在和#34; Chausseestr。"。
如果只搜索街道名称和国家/地区的地址搜索是否可行? 谢谢!
答案 0 :(得分:1)
这看起来像是结构化地理编码请求,但不幸的是,仅street
地理编码请求过于宽泛而无法返回有效响应。将street
与country
组合在一起的请求也没有。你最好的选择是将德国分成一系列不重叠的bounding box geocoding requests覆盖,说明该国的东北部,西北部和南部,并将结果合并。
此请求在德国东部查找'Hauptstrasse',仅返回100个邮政编码
street
设置要查找的街道名称,country=deu
将结果限制在德国responseattributes=none
会从回复中删除置信度元信息locationattributes=none,ar
限制回复仅限地址addressattributes=none,pst
限制地址仅发布代码mapview
定义请求的边界框的限制。maxresults=100
可确保最多返回100个结果。在德国西部,德国南部等地重复此事。
适用于here.com的内容,可能适用于对话框,是使用places api中的建议结束点。尝试制作一系列建议请求,并填写文本框,设置X-Map-Viewport
以涵盖德国:
甚至还有一个现成的JavaScript component可以做到这一点。
答案 1 :(得分:0)
至少在某些HERE产品中,回复数据还包含地址,因此您可以从那里获取邮政编码。
如果它不在那里,那么用获得的位置进行revercegeo查询,那么至少你应该得到它
答案 2 :(得分:0)
回答这样的问题永远不会太迟。
"Plugins"
- > "Manage and install plugins..."
- >安装"OSMDownloader"
"Vector"
- > "Openstreetmap"
- >在您放大了感兴趣的区域后"Download data"
当你拥有.xml
文件时,使用简单的unix命令行工具来相应地切片和切块。
快速破解(一个穴居人的解决方案,但为我工作):
$ grep -A1 'addr:post' OSM_input.xml | egrep -v '^--$' | sed 'N;s/\n/ /' | grep 'addr:street' | awk -F'v="' '{print$2"#"$3}' | sed 's/"\/> <tag k="addr:street" //' | sed 's/"\/>/,/' > output.txt
output.txt
将包含一个大部分准确(需要一些手动清理)文件,其格式为:zipcode#streetname
(每行一个)。