Here api 检索仅包含街道名称和国家(德国)的所有可能的邮政编码
尝试构建一个对话框,其中只有一个文本框,用户可以(除其他外)只输入德国的街道名称,然后该对话框应显示该街道名称在整个德国可能的所有邮政编码(PLZ)列表。因此,基本上我需要一份德国所有PLZ+街道名称组合的列表,首先按大城市的街道排序(如果可能的话,先按大街道排序)。我尝试了几种不同的HERE API,但在仅使用街道名称进行搜索时,如果国家设置为德国,则无法产生任何结果。如果我另外填写城市(streetname+city),那么我会得到一个很好的回复,并提供我所需要的一切。那么,对于只包含街道名称和国家(where country='DEU')且不包含任何城市的查询,是否有任何方法可以获得结果?搜索需要是位置不可知的,唯一的假设是用户在德国 这种极简搜索似乎在here.com地图网站上起作用。在here.com网站上唯一的问题是它把我定位到了一个错误的城市,因此它给我的3个结果与我的位置并不相关。例如,我在柏林,而here.com在莱比锡找到了我,我正在用“Chaussester”搜索 如果只搜索街道名称和国家的地址是可行的,你有什么想法吗?Here api 检索仅包含街道名称和国家(德国)的所有可能的邮政编码,here-api,Here Api,尝试构建一个对话框,其中只有一个文本框,用户可以(除其他外)只输入德国的街道名称,然后该对话框应显示该街道名称在整个德国可能的所有邮政编码(PLZ)列表。因此,基本上我需要一份德国所有PLZ+街道名称组合的列表,首先按大城市的街道排序(如果可能的话,先按大街道排序)。我尝试了几种不同的HERE API,但在仅使用街道名称进行搜索时,如果国家设置为德国,则无法产生任何结果。如果我另外填写城市(streetname+city),那么我会得到一个很好的回复,并提供我所需要的一切。那么,对于只包含街道名
谢谢 你考虑过试试地理编码吗?不仅仅是第一个结果,我想这就是您在参考的服务示例中看到的结果。因此,确实要遍历所有回复。当然,请查看您正在使用的API,并确保在执行任何查询之前为max results设置了一些好的数字 至少在这里的一些产品中,回复数据还包括地址,因此您可以从那里获取邮政编码
另外,如果它不在那里,则使用获得的位置进行混响地理查询,然后至少您应该得到它这看起来像是一个结构化地理编码请求,但不幸的是,
街道
仅地理编码请求太宽,无法返回有效响应。将街道
与国家
相结合的请求也不存在。你最好的选择是将德国分割成一系列不重叠的区域,比如东北部、西北部和南部,并合并结果
此请求在德国东部查找“Hauptstrasse”,最多只返回100个邮政编码
设置要查找的街道名称街道
将结果限制在德国country=deu
从响应中删除信任元信息responseattributes=none
仅将响应限制为地址locationattributes=none,ar
仅将地址限制为邮政编码addressattributes=none,pst
定义请求的边界框的限制mapview
确保最多返回100个结果maxresults=100
X-Map-Viewport
覆盖德国:
甚至有一种现成的方法可以做到这一点。回答这样的问题永远不会太迟
“插件”
->“管理和安装插件…”->安装“OSMDownloader”
“Vector”
->“Openstreetmap”
->“下载数据”
在您放大到感兴趣的区域后.xml
文件时,请使用简单的unix命令行utils来相应地进行切片
快速破解(有点像穴居人的解决方案,但对我有效):
$grep-A1'addr:post'OSM_input.xml | egrep-v'^--$'| sed'N;s/\n/'| grep'addr:street'| awk-F'v=“'{print$2'#“$3}”| sed's/“\/>编辑您的问题可能是个好主意。虽然很清楚你想做什么,但不清楚你是怎么做的,或者你在哪里遇到了麻烦。是Javascript吗?是数据库代码吗?添加一些源代码,说明您遇到的问题,并删除不必要的解释。这些不必要的解释只会让你的问题变得清晰。这使这篇文章很难读。
$ 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