空的地方通过搜索一些城市trouch地理编码API



当我按地址搜索结果时,有些查询结果在Geocoding API的JSON响应代码中没有locality。这就是示例#1中搜索Houten时发生的情况。但当我在示例#2中搜索像Vianen这样的城市时,就会有一个位置。这是API内部的一个bug吗?这个问题可以解决吗?

示例#1

{
"results" : [
{
"address_components" : [
{
"long_name" : "Houten",
"short_name" : "Houten",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Utrecht",
"short_name" : "UT",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Nederland",
"short_name" : "NL",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Houten, Nederland",
[......],
"types" : [ "administrative_area_level_2", "political" ]
}
],
"status" : "OK"
}

示例#2

{
"results" : [
{
"address_components" : [
{
"long_name" : "Vianen",
"short_name" : "Vianen",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Vianen",
"short_name" : "Vianen",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Utrecht",
"short_name" : "UT",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Nederland",
"short_name" : "NL",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Vianen, Nederland",
[......],
"place_id" : "ChIJJ8URC75jxkcRlnwIUl-xUDY",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}

这听起来像是API方面的评分问题。正如我们所看到的,Geocoding API更喜欢administrative_area_level_2类型的结果。出于某种原因,API认为名称为Houten的行政区域比名称相同的地方更突出,并在响应中返回行政区域。

您可以尝试使用过滤器类型设置为城市的地点自动完成请求来获取地点的地点ID。

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Houten&types=(cities)&key=YOUR_API_KEY

此请求作为第一个建议返回"Houten,Netherlands",位置ID为ChIJu_QGwOdmxkcRPRqtvufr2Ic,类型为locality。现在你可以使用地理编码来获得这个城市:

https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJu_QGwOdmxkcRPRqtvufr2Ic&key=YOUR_API_KEY

Geocoder工具中的相同结果:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#place_id%3DChIJu_QGwOdmxkcRPRqtvufr2Ic

我希望这个变通办法可能会有所帮助。

相关内容

  • 没有找到相关文章

最新更新