我对Geocoder.geocode({' placeId':placeId})的结果在特定位置有问题
(即主街34号,巴黎)然后我将获得address_components:<?php
street,sublocality,locality,country,postal_code.
以上代码的精确位置(包含街道nmbr。街道和城市)返回对我来说不重要的address_components。
但我想要 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);
}
});
}
和administrative_area_level_2
类型。不幸的是,我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类型?
答案 0 :(得分:0)
根据Google地图地理编码文档,administrative_area_level_#表示国家/地区以下的民间实体。 并非所有国家都表现出这些行政级别。在大多数情况下,administrative_area_level_#短名称将与ISO 3166-2细分和其他广泛传播的列表紧密匹配; 然而这并不能保证,因为我们的地理编码结果基于各种信号和位置数据。也许这就是问题。
此外,关于仅使用地址= brusno 的请求,您会注意到这里的administrative_area_level_#位于BanskáBystrica区,而不是像Luka,Brusno那样使用的地方。
如果您查询该地址,您会发现它的结果相同。
使用地址=BanskáBystrica区
https://maps.googleapis.com/maps/api/geocode/json?&address=Bansk%C3%A1%20Bystrica%20District
所以也许像文档说明并非所有地方(Luka,Brusno)都表现出这些管理级别。