2011-05-26 24 views
35

Google Maps API v3'ü kullanarak, başlangıçta haritanın merkezini belirlemenin bir yolu var mı? Bu kodu kullanarak bir çözüm vardır:Google Maps v3 - Başlangıçta bir adres nasıl kullanılır?

var geocoder; 
    var map; 
    function initialize() { 
    geocoder = new google.maps.Geocoder(); 
    var latlng = new google.maps.LatLng(-34.397, 150.644); 
    var myOptions = { 
     zoom: 8, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    codeAddress('germany'); 
    } 

    function codeAddress(address) { 
    geocoder.geocode({ 'address': address}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
     } 
    }); 
    } 

tek sorun başlatır, bunun bir an için "latlng" için ortalar olmasıdır. "MyOptions" daki merkezi nasıl ayarlayacağımı anlayamıyorum. Gerçi ben codeAddress işlevinden "sonuçları [0] .geometry.location" dönmek ve myOptions onu geçmek, ama bu çalışmıyor olabilir.

Yardımlarınız için teşekkür ederiz.

Güncelleme seçeneklerine adresini iletmek için bir yol var mı, "center" tamamen, merak ediyorum kaldıramaz beri. Google API itibaren

:

bir harita başlatmak için, öncelikle seçenekler harita başlatma değişken içermesi itiraz bir harita oluşturmak. Bu nesne yapılandırılmamış; bunun yerine bir nesne değişmezi olarak yaratılır. merkez ve yakınlaştırma: Her harita için iki gerekli seçenek vardır.

cevap

70

Eh basit çözüm codeAddress fonksiyonunda Haritayı başlatmak için olabilir:

var geocoder, map; 

function codeAddress(address) { 
    geocoder = new google.maps.Geocoder(); 
    geocoder.geocode({ 
     'address': address 
    }, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      var myOptions = { 
       zoom: 8, 
       center: results[0].geometry.location, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      } 
      map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

      var marker = new google.maps.Marker({ 
       map: map, 
       position: results[0].geometry.location 
      }); 
     } 
    }); 
} 

Bu sorunu çözmek gerekir.

+2

ben initialize fonksiyonunda coğrafi kod işlevi bulunur çalışırken tuttu ... ama aslında tersi çalışır. Teşekkürler! – TerryMatula