web-dev-qa-db-fra.com

la fonction map.setCenter () ne fonctionne pas correctement

Voici le code ...

<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
var geocoder;
var map;

function initialize() {
    geocoder = new google.maps.Geocoder();        
    var address = "new delhi";

    geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {        
            var latitude = results[0].geometry.location.lat();
            var longitude = results[0].geometry.location.lng();
            alert(latitude);
            alert(longitude);
            map.setCenter(new GLatLng(latitude, longitude));

            var marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
            });
            var latlng = new google.maps.LatLng(latitude, longitude);
            var mapOptions = {
                zoom: 8,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            }
            map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
        } 
    });
    google.maps.event.addDomListener(window, 'load', initialize);    
}
</script>
6
analyticalpicasso

Vous aurez besoin de mettre le centre comme ça ...

map.setCenter(new google.maps.LatLng(latitude, longitude));

De plus, vous définissez le centre avant d’initialiser la carte, ce qui génère une erreur.

Démo Fiddle

Voici mis à jour JS.

     var geocoder;

 var map;

 function initialize() {

     geocoder = new google.maps.Geocoder();

     var address = "new delhi";

     geocoder.geocode({
         'address': address
     }, function (results, status) {

         if (status == google.maps.GeocoderStatus.OK) {

             var latitude = results[0].geometry.location.lat();

             var longitude = results[0].geometry.location.lng();

             alert(latitude);

             alert(longitude);




             var latlng = new google.maps.LatLng(latitude, longitude);

             var mapOptions = {

                 zoom: 8,

                 center: latlng,

                 mapTypeId: google.maps.MapTypeId.ROADMAP

             }

             map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

             var latlng = new google.maps.LatLng(latitude, longitude);
             map.setCenter(latlng);

             var marker = new google.maps.Marker({

                 map: map,

                 position: latlng,
                 title: 'Hello World!'

             });
         }

     });
 }
 google.maps.event.addDomListener(window, 'load', initialize);
26
nik

J'utilise la bibliothèque gmaps.js.

La taille maximale de la pile dépassait mon erreur lorsque j'ai essayé de recentrer la carte à l'aide de map.setCenter (nouveau google.maps.LatLng (latitude, longitude));

j'ai donc juste essayé map.setCenter (latitude, longitude); Et cela a fonctionné pour moi.

0
Kishor Pawar