Карты Google - поиск в пределах границ / области просмотра - PullRequest
3 голосов
/ 07 марта 2012

Я хочу, чтобы мой поиск возвращал только попадания в пределах карты / области просмотра.Я перебираю Британию и ищу Лондон с границами карты, но ответ также возвращает 3 попадания в США.Как мне ограничить поиск?

Код:

function codeAddress(){
    geocoder = new google.maps.Geocoder();
    var address = document.getElementById("inputAddress").value;
    var bounds = map.getBounds();
    geocoder.geocode({address: address, bounds: bounds}, function(results, status){
        if(status == google.maps.GeocoderStatus.OK){
            // put markers on each hit
        }
    });
}

1 Ответ

0 голосов
/ 09 февраля 2013

Я предполагаю, что, ограничивая результаты, вы пытаетесь построить соответствующие маркеры, верно?

Таким образом, вместо ограничения поиска напрямую, вы можете попробовать косвенный подход. if(status == google.maps.GeocoderStatus.OK){ // put markers on each hit }

В цикле if вы можете использовать метод с именем contains () на границах карты, например

if(status == google.maps.GeocoderStatus.OK) {
        if(map.getBounds().contains(RESULT-LOCATION)) {
            // put markers on each hit
        }
    }

Где RESULT-LOCATION - это местоположение результата, который возвращается из запроса геокода. Таким образом, маркеры будут отображаться только в пределах карты.

Надеюсь, это поможет.

...