2013-07-03 29 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

相关问题