我在设置api密钥后复制(我应该生成一个特殊的密钥(浏览器,adnroid)??),一个新的html页面中的this page(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>
在Worklight 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"
}
});
...
});
});
}
initialize()函数:
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" />
视图为空,不显示地图。
浏览器控制台上没有错误,但函数初始化不是调用。为什么?
答案 0 :(得分:2)
使用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"
}
答案 1 :(得分:1)
你还需要你的require回调函数来正确映射你的require数组参数。这里看起来你导入了几个模块,但你只需要2个参数来进行你的需要回调。
如果你这样做
require(["a", "b", "c", "dojo/require/script"], ...)
该功能应该是
function(a, b, c, script)
而不只是function(a, script)
如果你不关心b&amp; c你可能会这样做:
require(["a", "dojo/require/script", "b", "c"], function(a, script){});
答案 2 :(得分:1)
我通过在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问题