我试图搜索可见地图范围内的所有城市。我怎样才能做到这一点?
以下是我尝试做的事情:
$.fn.gmap3.geocoder.geocode({ 'address': 'Georgia' }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
globalMap.setCenter(results[0].geometry.location);
var resultBounds = new google.maps.LatLngBounds(
results[0].geometry.viewport.getSouthWest(),
results[0].geometry.viewport.getNorthEast()
);
globalMap.fitBounds(resultBounds);
// get cities in the map
var service = new google.maps.places.PlacesService(globalMap);
var request = {
bounds: resultBounds,
types: ['locality']
};
service.search(request, function (results, status) {
debugger;
});
}
});
但结果是ZERO_RESULTS
。也许原因是结果被限制在 50.000 米的半径范围内?
任何人都知道如何解决我的问题?非常感谢。
- 更新 -
感谢 Sean 仔细阅读我的帖子并提供详细反馈。
这就是我引用库的方式:
src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"
我还为地理编码功能添加了更多细节以获得更精确的结果。但我仍然没有得到我想要的结果。
检查此页面中的列表:https ://developers.google.com/places/documentation/supported_types ,我意识到第一个列表中的几乎所有项目都返回值,但不是第二个列表。唯一的项目返回值是 'political',它只返回 1 而不是 20。
这是我修改后的代码:
this.setCenterByAddress = function (address, region) {
$.fn.gmap3.geocoder.geocode({ 'address': address, 'region': region }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
globalMap.setCenter(results[0].geometry.location);
var resultBounds = new google.maps.LatLngBounds(
results[0].geometry.viewport.getSouthWest(),
results[0].geometry.viewport.getNorthEast()
);
globalMap.fitBounds(resultBounds);
// get cities in the map
var service = new google.maps.places.PlacesService(globalMap);
var request = {
bounds: resultBounds,
types: ['country',
'administrative_area_level_1',
'administrative_area_level_2',
'administrative_area_level_3',
'colloquial_area',
'country',
'floor',
'geocode',
'intersection',
'locality',
'natural_feature',
'neighborhood',
'political',
'point_of_interest',
'post_box',
'postal_code',
'postal_code_prefix',
'postal_town',
'premise',
'room',
'route',
'street_address',
'street_number',
'sublocality',
'sublocality_level_4',
'sublocality_level_5',
'sublocality_level_3',
'sublocality_level_2',
'sublocality_level_1',
'subpremise',
'transit_station']
};
service.search(request, function (results, status) {
debugger;
});
}
});
}
更多信息:即使使用位置和半径,也会返回相同的值。而且我使用免费地图并一直收到“OVER_QUERY_LIMIT”。