fitbounds () no Google maps api V3 não se encheckbox limites

Estou usando o geocoder da Google API v3 para exibir um mapa de um país. Eu recebo a viewport recomendada para o país, mas quando eu quero ajustar o mapa para essa viewport, ele não funciona (veja os limites antes e depois de chamar a function fitBounds no código abaixo).

O que estou fazendo de errado?

Como posso definir a janela de visualização do meu mapa como results[0].geometry.viewport ?

 var geocoder = new google.maps.Geocoder(); geocoder.geocode( {'address': '{{countrycode}}'}, function(results, status) { var bounds = new google.maps.LatLngBounds(); bounds = results[0].geometry.viewport; console.log(bounds); // ((35.173, -12.524), (45.244, 5.098)) console.log(map.getBounds()); // ((34.628, -14.683), (58.283, 27.503)) map.fitBounds(bounds); console.log(map.getBounds()); // ((25.740, -24.806), (52.442, 17.380)) } ); 

Isso acontece porque o fitBounds() precisa ser encheckboxdo em uma viewport que se ajuste à canvas do mapa usando o nível máximo de zoom possível. Por outro lado, a porta de visualização retornada pelo geocoder não depende do tamanho, layout ou nível de zoom da canvas do mapa. Portanto, o método fitBounds() ajusta a viewport do mapa para exibir os LatLngBounds passados ​​por inteiro no centro do mapa.

Você pode querer verificar o exemplo a seguir para uma demonstation mais clara:

     Google Maps fitBounds Demo    

Abaixo estão alguns screenshots para vários países do exemplo acima. A checkbox delimitadora vermelha é a porta de visualização retornada pelo geocodificador. Observe a diferença entre a checkbox delimitadora e a viewport real, conforme ajustado por fitBounds() :

País: EUA

NOS

País: RU

RU

País: IT

ISTO

Apenas para que você saiba de que maneira isso pode ser personalizado, preparei uma amostra do que você pode fazer se preferir perder alguns dos boundingBox na viewport

    Intereting Posts