Я пытаюсь использовать Google Places Autocomplete и ограничить результаты указанным c городом в Канаде, а именно Торонто. Мне известно, что использование опции componentRestrictions
позволит мне ограничить результаты Канадой с помощью componentRestrictions: {country: 'CA'}
. Чтобы еще больше ограничить результаты Торонто, я понимаю, что мне нужно добавить свойство bounds
к объекту options
. LatLngBounds
предполагает юго-западный и северо-восточный углы, которые также называются нижним левым и верхним правым углами.
Я нашел этот пример кода, который реализует эту стратегию для города Хайдарабад в Пакистан, и он работает отлично:
var input = document.getElementById('searchTextField');
var southWest = new google.maps.LatLng( 25.341233, 68.289986 );
var northEast = new google.maps.LatLng( 25.450715, 68.428345 );
var HyderabadBounds = new google.maps.LatLngBounds( southWest, northEast );
var options = {
bounds: HyderabadBounds,
types: ['address'],
componentRestrictions: { country: 'PK' }
};
var autocomplete = new google.maps.places.Autocomplete( input, options);
Когда я пытаюсь изменить код для работы в области в Канаде, по какой-то причине он не работает. Вот мой модифицированный код:
var input = document.getElementById('searchTextField');
var southWest = new google.maps.LatLng( 43.941160, -78.895187 );
var northEast = new google.maps.LatLng( 42.946172, -81.296577 );
var TorontoBounds = new google.maps.LatLngBounds( southWest, northEast );
var options = {
bounds: TorontoBounds,
types: ['address'],
componentRestrictions: { country: 'CA' }
};
var autocomplete = new google.maps.places.Autocomplete( input, options);
Единственное, что отличается от моего модифицированного кода, это обозначение страны CA
и координаты LatLng, которые я считаю правильными. Я дважды проверил мои координаты, и координата юго-западного направления относится к местоположению к юго-западу от Торонто, а координата северо-восточного направления относится к местоположению к северо-востоку от Торонто, поэтому я ожидал, что они должны работать. Хотя мои результаты правильно ограничены Канадой, они не находятся в моих пределах, как указано в координатах LatLng.
Может кто-нибудь увидеть, что я могу делать неправильно?