2016-06-01 94 views
2

我正在使用一個cordova應用程序,並且有一個用於瀏覽地圖的瀏覽器鍵。Google Map javascript api key

<script async defer 

     src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBHJxzPHD_egYnhxntqcvfem35YRjruzAg&callback=initMap"> 
</script> 

,但我想利用我的鑰匙從服務器,我把我保存這個鍵

localStorage.getItem("MapCode") 

這locastorage給

https://maps.googleapis.com/maps/api/js?key=AIzaSyBHJxzPHD_egYnhxntqcvfem35YRjruzAg&callback=initMap

所以我想寫這個src,但我不能這樣做。

<script async defer 

      src=localStorage.getItem("MapCode")> 
    </script> 

我該如何解決這個問題?在此先感謝

回答

2

您可以動態加載谷歌地圖的JavaScript API。爲此,你可以創建下面的代碼:

function loadScript() { 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = localStorage.getItem("MapCode"); 
    document.body.appendChild(script); 
} 

window.onload = loadScript; 

請看示例代碼http://jsbin.com/carobun/edit?html,output

代碼片段:

var map; 
 

 
function initialize() { 
 
    var c = new google.maps.LatLng(54.8867537,-1.557352); 
 
    var mapOptions = { 
 
     zoom:7, 
 
     center: c 
 
    }; 
 
    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' + 
 
     '&key=AIzaSyDztlrk_3CnzGHo7CFvLFqE_2bUKEq1JEU&callback=initialize'; 
 
    document.body.appendChild(script); 
 
} 
 

 
window.onload = loadScript;
html, 
 
body, 
 
#map-canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<div id="map-canvas"></div>