我有这段代码
var input, defaultBounds, autocomplete_normal;
input = (document.getElementById('search_location'));
defaultBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(-90, -180),
new google.maps.LatLng(90, 180)
);
var options = {
bounds: defaultBounds,
types: ['(cities)']
};
autocomplete_normal = new google.maps.places.Autocomplete(input, options);
google.maps.event.addListener(autocomplete_normal, 'place_changed', function () {
var place = autocomplete_normal.getPlace();
console.log(place);
});
当我搜索“科英布拉,葡萄牙”时,Api将“Coimbra”称为“地方” - 应该如此。
但是,如果我用类型替换类型:['(cities)']:['geocode'],“Coimbra”将返回“administrative_area_level_2”,并且没有关于地点的其他信息。
带有类型的代码:['(cities)']用于提交页面以获取城市。带有类型的代码:['geocode']用于搜索表单,在这种情况下,由于“locality”变量为空,因此不会返回正确的结果。
我尝试用'(regions)'替换地理编码,但结果相同。你能告诉我为什么会这样吗?为什么这只发生在某些地方呢?
答案 0 :(得分:-1)
Administrative_area 2也是城市......来自他们的文档:
administrative_area_level_2表示国家/地区以下的二阶民用实体。在美国,这些行政级别是县。并非所有国家都表现出这些行政级别。'
地理编码响应不包含“城市”,因此会将其还原为administrative_area_2。