Geocoder.geocode({' placeId':placeId})没有返回administrative_area_level_2 / 1

时间:2016-07-26 00:15:12

标签: google-maps google-maps-api-3 google-geocoder

我对Geocoder.geocode({&#39; placeId&#39;: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类型?

1 个答案:

答案 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)都表现出这些管理级别。