2014-03-06 77 views
0

我正嘗試使用基於郵編的標記來顯示Google地圖。我已將latlng座標轉換爲郵政編碼,但問題在於地圖根本不顯示。無法使用基於郵編的標記顯示Google地圖

以下是我在嘗試這樣做:

function initialize() { 
    var lat = ''; 
    var lng = ''; 
    var geocoder = new google.maps.Geocoder(); 
    geocoder.geocode({ 'address': 94301}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
     lat = results[0].geometry.location.lat(); 
     lng = results[0].geometry.location.lng(); 
     var mapOptions = { 
      zoom: 8, 
      center: new google.maps.LatLng(lat, lng) 
     }; 
     var map = new google.maps.Map(document.getElementById("gmap"), myOptions); 
     map.setCenter(results[0].geometry.location); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
     alert('111'); 
     } else { 
     alert("Geocode was not successful for the following reason: " + status); 
     } 
    }); 
    google.maps.event.addDomListener(window, 'load', initialize); 
} 

甚至不是警報( '111')的出現。

我在做什麼錯?

感謝

+1

你檢查JavaScript控制檯,有沒有錯誤?如果沒有顯示這些警報,我懷疑在到達這些線路之前有問題。 –

+0

控制檯沒有錯誤,沒有警報。我猜這些標記有問題,一張簡單的地圖確實很好,但是找不到該錯誤。 – user984621

+0

如果你刪除標記創建和console.log這些拉特,它的工作原理? –

回答

0

你的問題是在這裏,我們在調用初始化函數初始化功能!

function initialize() { 
    ... 
    google.maps.event.addDomListener(window, 'load', initialize); 
} 

將最後一行移出該函數,你會看到一些我認爲的結果。

function initialize() { 
    ... 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
0

2個問題:

  1. 您的onload事件監聽器是初始化函數裏面,所以它永遠不會調用初始化
  2. 當我解決,我得到一個JavaScript錯誤

    Uncaught InvalidValueError: in property address: not a string 
    
  3. then:

    Uncaught ReferenceError: myOptions is not defined 
    

所以:

 function initialize() { 
     var lat = ''; 
     var lng = ''; 
     var geocoder = new google.maps.Geocoder(); 
     geocoder.geocode({ 'address': "94301"}, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
      lat = results[0].geometry.location.lat(); 
      lng = results[0].geometry.location.lng(); 
      var mapOptions = { 
       zoom: 8, 
       center: new google.maps.LatLng(lat, lng) 
      }; 
      var map = new google.maps.Map(document.getElementById("gmap"), mapOptions); 
      map.setCenter(results[0].geometry.location); 
      var marker = new google.maps.Marker({ 
       map: map, 
       position: results[0].geometry.location 
      }); 
      alert('111'); 
      } else { 
      alert("Geocode was not successful for the following reason: " + status); 
      } 
     }); 

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