webentwicklung-frage-antwort-db.com.de

die map.setCenter () - Funktion funktioniert nicht ordnungsgemäß

Hier ist der 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

Sie müssen den Mittelpunkt so einstellen ...

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

Außerdem legen Sie den Mittelpunkt fest, bevor Sie die Karte initialisieren und so einen Fehler auslösen.

Demo Fiddle

Hier ist JS aktualisiert.

     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

Ich verwende die Bibliothek gmaps.js.

Die maximale Stapelgröße wurde überschritten, als ich die Karte mithilfe von map.setCenter neu zentrieren wollte (new google.maps.LatLng (Latitude, Longitude));

also habe ich gerade dieses map.setCenter (Breitengrad, Längengrad) ausprobiert; und es hat für mich funktioniert.

0
Kishor Pawar