Google maps 如何在Worklight上要求Google maps地理编码脚本

Google maps 如何在Worklight上要求Google maps地理编码脚本,google-maps,google-maps-api-3,dojo,ibm-mobilefirst,Google Maps,Google Maps Api 3,Dojo,Ibm Mobilefirst,在设置了api键(我是否应该生成一个特殊的键(browser,adnroid)?)之后,我在一个新的html页面中复制了(Google Maps JavaScript api v3)的html代码,所有这些都可以完美地工作 这是一个html页面的脚本,可以工作: <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCo1Q9VJ...xr7R4aOBDzY&

在设置了api键(我是否应该生成一个特殊的键(browser,adnroid)?)之后,我在一个新的html页面中复制了(Google Maps JavaScript api v3)的html代码,所有这些都可以完美地工作

这是一个html页面的脚本,可以工作:

 <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCo1Q9VJ...xr7R4aOBDzY&sensor=false">
    </script>
初始化()函数:

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);
}   
build-dojo.xml

..
<include name="dojo/request/script.js" /> 
。。
视图为空,不显示地图


浏览器控制台上没有错误,但未调用函数initialize。为什么?

在运行其余代码之前,请使用dojo io load确保已加载google api

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

            }

在运行其余代码之前,请使用dojo io load确保已加载google api

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

            }

您还需要require回调函数来正确映射require数组参数。在这里,看起来您导入了几个模块,但是您的require回调只有2个参数

如果你这样做

require(["a", "b", "c", "dojo/require/script"], ...)
功能应该是

函数(a,b,c,script)
而不仅仅是
函数(a,script)

如果你不关心b&c,你可以:

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

您还需要require回调函数来正确映射require数组参数。在这里,看起来您导入了几个模块,但是您的require回调只有2个参数

如果你这样做

require(["a", "b", "c", "dojo/require/script"], ...)
功能应该是

函数(a,b,c,script)
而不仅仅是
函数(a,script)

如果你不关心b&c,你可以:

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

我通过导入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()中调用函数initialize()。地图也会显示出来
我认为这是一个CSS问题

我通过导入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()中调用函数initialize()。地图也会显示出来
我认为这是一个CSS问题

我把代码放在哪里?因为我在dojo init函数之后插入了它,并且这个错误:“TypeError:dojo.io未定义”显示它已弃用dojo.io.script.get已弃用。我用这个但不起作用!导入“dojo/request/script”时出错,但我看到该文件已存在,您必须将其添加到dojo构建中。查找build-dojo.properties。找到patternset标记。AddTypeError:script.get不是函数。我将此代码放在何处?因为我将其插入dojo init函数之后,并且此错误:“TypeError:dojo.io未定义”显示其已弃用dojo.io.script.get已弃用。我用这个但不起作用!导入“dojo/request/script”时出错,但我看到该文件已存在,您必须将其添加到dojo构建中。查找build-dojo.properties。找到patternset标记。Add TypeError:script.get不是函数。谢谢,脚本“起作用”,但我不明白为什么函数initialize没有被调用。谢谢,脚本“起作用”,但我不明白为什么函数initialize没有被调用。