2014-02-24 189 views
1

我想在我的網頁中使用谷歌地圖API包括谷歌地圖。Google maps API無法加載?

在我的HTML我有我的頭:

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

請注意,我使用的「https」否則我得到的安全性錯誤......

和我的身體標籤:

<body window.onload="initialize()"> 

和我有一個包含地圖一個div:

<div id="map_canvas"></div> 

和外部javascript文件我有一個函數initialize(),它應該將地圖加載到map_canvas div中。我嘗試在自己的計算機上編寫頁面,並使用瀏覽器訪問該頁面,但沒有運行Web服務器,並且很好 - 地圖顯示爲應該顯示。

我已經試過「檢查元素」,我得到的錯誤是

Uncaught TypeError: Object #<Document> has no method 'write' js?sensor=false:8 

對應於這個代碼片段:

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

任何想法,我要去哪裏錯了嗎?我唯一能想到的是地圖無法在頁面的其餘部分加載,但如果是這樣,我不知道如何解決這個問題....任何幫助都非常感謝!我一直在搜索谷歌搜索幾個小時,但沒有運氣..

我認爲這個問題可能是因爲我用XHTML編寫的事實,但API使用'document.write',這是非法的 - 在那裏一種解決這個問題的方法?

回答

1

終於找到了這裏的解決方案:

我有我的初始化函數後添加loadScript功能,例如:

function initialize() { 
var mapOptions = { 
zoom: 8, 
center: new google.maps.LatLng(-34.397, 150.644) 
}; 

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

function loadScript() { 
var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&' + 
    'callback=initialize'; 
document.body.appendChild(script); 
} 

window.onload = loadScript; 

我發現這裏的解決方案:

https://developers.google.com/maps/documentation/javascript/tutorial#asynch