2013-07-03 25 views
1

我在設置api鍵(應該生成一個特殊鍵(瀏覽器,adnroid)??),一個代碼爲this page(Google Maps JavaScript API v3) html頁面,所有的作品都很完美。如何要求Google地圖Worklight上的地理編碼腳本

這是html頁面的腳本作品:

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

在工作燈Prject,使用Dojo,地圖不顯示。

我輸入腳本dojo/request/script。這是的.js代碼:

 function dojoInit() { 
      require([ "dojo", "dojo/request/script","dojo/parser", 

        .. 

        ], function(dojo,script) { 
    dojo.ready(script,function() { 


       script.get({ 
        url : "http://maps.googleapis.com/maps/api/js", 
        content : { 
         libraries : "places, geocode", 
         sensor : "false", 
         callback : "initialize", 
         key: "AIzaSyCo1Q9....cqXhAxr7R4aOBDzY" 
        } 
       }); 
    ... 
      }); 
     }); 

    } 

初始化()函數:

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

積聚dojo.xml

.. 
<include name="dojo/request/script.js" /> 

的視圖是空的,而不是顯示地圖。

在瀏覽器的控制檯上沒有錯誤,但函數初始化不是call.Why?

回答

1

我解決了它通過導入t他在HTML

<script type="text/javascript" 
      src="https://maps.googleapis.com/maps/api/js?key=AIzaS..OBDzY&sensor=false"> 
     </script> 
<div dojoType="dojox.mobile.ContentPane" style="overflow:auto;"> 

     <div id="map_canvas" style="height:1000px"></div><!-- cambiare style --> 

    </div> 

腳本,調用dojo_init函數初始化()()。地圖顯示以及enter image description here 我認爲這是一個CSS問題

2

使用dojo io加載以確保在運行代碼的其餘部分之前加載了google api。

dojo.io.script.get({ 
      url : "http://maps.googleapis.com/maps/api/js", 
      content : { 
       libraries : "places, geocode", 
       sensor : "false", 
       callback : "initialize", 
       key: "AIzaSyCo1Q9VJDuH96CqqW8cqXhAxr7R4aOBDzY" 

      } 
+0

我在這裏放置這段代碼?因爲我在dojo初始化函數後插入它並出現這個錯誤:「TypeError:dojo.io is undefined」show它已被棄用http: //dojotoolkit.org/reference-guide/1.8/dojo/io/script.html – Angelo

+1

將它放在dojo.ready而不是domlisterner – tik27

+0

dojo.io.script.get已棄用。我使用這個http://dojotoolkit.org/reference-guide/1.9/dojo/request/script.html#dojo-request-script但不工作! – Angelo

1

您還需要您的require回調函數來正確映射您的require數組參數。在這裏它看起來像你導入了幾個模塊,但你只有2個參數給你的require回調。

如果你

require(["a", "b", "c", "dojo/require/script"], ...) 

的功能應該是

function(a, b, c, script)並不僅僅是function(a, script)

,如果你不關心關於B & c您可能會做:

require(["a", "dojo/require/script", "b", "c"], function(a, script){}); 
+0

謝謝,腳本「有效」,但我不明白爲什麼函數初始化不是調用。 – Angelo

相關問題