我对Geocoder.geocode({'placeId':placeId})的结果在特定位置(即Main Street 34,Paris)有问题,然后我将获得address_components:street,sublocality,locality,country,postal_code.
function geocodePlaceId(geocoder, placeId, callback) {
geocoder.geocode({'placeId': placeId}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[0]) {
console.log(results[0]);
callback(results[0].address_components);
}
});
}
以上代码的精确位置(包含街道nmbr。街道和城市)返回对我来说不重要的address_components。
但是我想要administrative_area_level_2
和administrative_area_level_1
类型。不幸的是,我google了很多,没有。我认为我的请求的这个定义可能有用https://developers.google.com/maps/documentation/javascript/3.exp/reference#GeocoderComponentRestrictions但不是。
示例:https://maps.googleapis.com/maps/api/geocode/json?&address=luka%20666%20brusno
我创建了具有街道,数字,城市的确切地址的请求,并返回了仅包含以下密钥的address_components:route,locality,country和postal_code,但是如果我将请求更改为.. address = brusno结果包含administrative_area_level_2和administrative_area_level_1。如何获得第一个选项的administrative_area_level_1和administrative_area_level_2?
您是否知道如何解决此问题或者我是否可以影响返回的address_components类型?
根据Google Maps Geocoding文档,administrative_area_level_#表示国家/地区以下的民用实体。并非所有国家都表现出这些行政级别。在大多数情况下,administrative_area_level_#短名称将与ISO 3166-2细分和其他广泛传播的列表紧密匹配;然而,由于我们的地理编码结果基于各种信号和位置数据,因此无法保证这一点。所以也许这就是问题所在。
另外,关于仅使用address = brusno的请求,您会注意到这里的administrative_area_level_#位于BanskáBystrica区,而不是像Luka,Brusno那样使用的地方。
如果您查询该地址,您会注意到它是相同的结果。
使用地址= Banska Bystrica区
https://maps.googleapis.com/maps/api/geocode/json?&address=Bansk%C3%A1%20Bystrica%20District
所以也许像文档说明并非所有地方(Luka,Brusno)都展示了这些管理级别。