2012-06-18 76 views
0

我想谷歌的地圖添加到我的網站,我想這一點:如何嵌入谷歌地圖?

$.getScript("https://maps.googleapis.com/maps/api/js?sensor=false", function() { 
    alert("1");   
    var map; 
    var myOptions = { 
     zoom: 8, 
     center: new google.maps.LatLng(-34.397, 150.644), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    alert("2"); 
    map = new google.maps.Map(document.getElementById("container"), myOptions); 
}); 

這是行不通的。有人可以告訴我爲什麼嗎?

編輯

腳本加載完美。我知道這是因爲alert(1)顯示,但之後控制沒有達到alert(2)

+1

沒有人可以告訴你爲什麼它不起作用,因爲沒有人知道它是如何不工作,直到你實際上告訴我們。 – lanzz

+0

「不工作」是什麼意思?如果你的意思是沒有錯誤發生,它只是不顯示,首先我會調查'id'的值,並確保它存在。然後從那裏出發。 – Nope

+0

粘貼你的html代碼,id爲'id'的元素必須是指定高度和寬度的'div'。 – jbrtrnd

回答

4
document.getElementById(id) 

什麼是ID,哪裏是得到界定?

另外getScript是用來做Ajax請求的,這實際上並不是你應該怎麼做Google Maps。只需以正常的方式調用腳本,並有一個init文件就緒的文件就緒。或者甚至更好地使用Google Maps API爲您提供的window.load事件偵聽器。

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false" /> 

<script type="text/javascript"> 
function init(id) 
    {   
      var map; 
      var myOptions = { 
       zoom: 8, 
       center: new google.maps.LatLng(-34.397, 150.644), 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      map = new google.maps.Map(document.getElementById(id), myOptions); 
    } 

google.maps.event.addDomListener(window, 'load', init('yourDivID')); 
</script> 
+1

誰降低了這個? 100%有效的問題。 – tkone

+0

@tkone:只能猜測。我會假設它只是在最後一次編輯之前的一個問題。在這種情況下,作爲評論可能更合適?除非脫節,否則很顯然這是造成這個問題的原因。那麼它應該是一個明確的答案,而不是一個問題。 – Nope

0

你應該看看你的容器div。

它必須指定寬度和高度。

而且我用經緯度的做作分開:

 var map; 
    var ll = new google.maps.LatLng(-34.397, 150.644); 
    var myOptions = { 
     zoom: 8, 
     center: ll, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById("container"), myOptions); 
1

你必須使用異步加載此 - https://developers.google.com/maps/documentation/javascript/tutorial#asynch

在目前的方案中,腳本做這個 -

function getScript(src) { 
    document.write('<' + 'script src="' + src + '"' + ' type="text/javascript"><' + '/script>'); 
} 

所以,當你打電話給$.getScript時,那將會失效。並且,google.maps.LatLng變得未定義。

我用異步版本創建了一個版本。你可以檢查小提琴@http://jsfiddle.net/rifat/G3yPw/

+0

讓我知道你是否想知道爲什麼'alert(2)'沒有被調用。 – Rifat