地理编码API是否可行,有时由于某种原因不起作用?
以下是我要求的详细信息:
http://geocoder.cit.api.here.com/6.2/geocode.xml?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&gen=4&country=Australia&state=Tas&district=Wynyard&postalcode=7321&street=86 Jackson Street
以下是官方网站的试用版:
http://geocoder.cit.api.here.com/6.2/geocode.xml
?app_id=DemoAppId01082013GAL
&app_code=AJKnXv84fjrb0KIHawS0Tg
&gen=7
&housenumber=425
&street=W+Randolph
&city=Chicago
我正在使用它的免费版本,我不知道为什么它有时会起作用而在其他时候却不行。 谢谢
答案 0 :(得分:2)
当您进行结构化地址查询时,默认情况下,地址的所有部分都需要匹配。鉴于地址没有国际标准,HERE地理编码器可以将地址的一部分放在结构的另一部分中。
在您的情况下, Wynard 被识别为city
,而不是district
。现在您可能希望将此失败作为无效地址,但也可以使用FlexibleAdminValues
AdditionalData
参数告诉Geocoder更宽松一点
请参阅用户指南here
<强> FlexibleAdminValues 强>
N(正整数<= 1)。自定义输入值的灵活性 对于LocationFilterType中定义的管理层次结构。价值是 位掩码定义可以交换哪些层次结构而不会影响 匹配级别:
- 0:根本没有交换(默认)。确切的管理层次结构值是 预期作为输入
- 1:城市和区域交换
请注意这一点 选项用于地址编码,至少需要街道级别 输入按设计工作。它不会返回预期的结果 输入只是一个命名的地方(例如城市或地区名称)。
所以如果您有街道地址,以下网址将适用于您: http://geocoder.cit.api.here.com/6.2/geocode.xml?app_id=APP_ID&app_code=APP_CODE&gen=7&AdditionalData=FlexibleAdminValues,1&country=Australia&state=tas&district=Wynyard&...etc
答案 1 :(得分:2)
另一种选择是不使用结构化输入参数,而是让HERE Geocoder对输入令牌进行识别和分类。 通过使用searchtext参数并提供所有数据作为输入值,Geocoder可以匹配并对令牌进行评分。 例如:http://geocoder.cit.api.here.com/6.2/geocode.xml?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&gen=7&searchtext=Australia%20Tas%20Wynyard%207321%2086%20Jackson%20Street