Google Maps - Comment faire pour Finesse la fenêtre d'affichage de A géocodées Adresse

StackOverflow https://stackoverflow.com/questions/8827730

  •  27-10-2019
  •  | 
  •  

Question

Je la mise en œuvre de Google Maps dans un nouveau projet et une page doit retourner un grand (100% * 100%) carte du Canada. J'utilise aussi géocodage pour déterminer le latlng à transmettre à la carte.

Voici le code:

var myLatlng = new google.maps.LatLng(37.775, -122.4183333);
        var myOptions ={
            zoom: 5,
            center: myLatlng,
            mapTypeId: google.maps.MapTypeId.TERRAIN
        }

        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

        var address = "Canada";
        var geocoder = new google.maps.Geocoder(address);
        geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                //map.setCenter(results[0].geometry.location);
                            //The above was too far north
                map.fitBounds(results[0].geometry.viewport);
                map.setZoom(5);
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }
        });

Il fonctionne bien, sauf qu'il est « un peu trop loin vers la gauche ». Pour l'essentiel, il est coupé la plupart des provinces Maritimes. Un exemple peut être vu ici:

http://50.28.69.176/~sequoia/locations.php

Quelqu'un sait comment ce finesse afin que le pays est mieux centré dans la fenêtre?

Merci pour toute aide.

Était-ce utile?

La solution

Au lieu de géocodage à chaque fois que la page est chargée, je vous suggère de simplement obtenir le LatLng exact que vous voulez, et le stockage.

Si vous voulez continuer à en tenir à cette approche, vous pouvez utiliser la méthode getCenter() sur un LatLngBounds pour obtenir son centre.

De cette façon, vous pouvez appeler

map.fitBounds(results[0].geometry.viewport.getCenter())
map.setZoom(5)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top