表示されているマップの境界内にあるすべての都市を検索しようとしました。どうやってやるの?
以下は私がやろうとしたことです:
$.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 メートルに制限されているためでしょうか?
誰でも私の問題を解決する方法を知っていますか? どうもありがとう。
- アップデート -
ショーン、私の投稿を注意深く読んで、詳細なフィードバックを提供してくれてありがとう。
これは私がlibを参照する方法です:
src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"
また、より正確な結果を得るために、ジオコード関数に詳細を追加しました。しかし、私はまだ私が望む結果を得ることができません。
このページのリストを確認してください: https://developers.google.com/places/documentation/supported_types、最初のリストのほとんどすべての項目が値を返しますが、2 番目のリストは返さないことに気付きました。アイテムの戻り値は「political」のみで、20 ではなく 1 しか返されません。
これは変更後の私のコードです:
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」を受け取っています。