2014-03-31 25 views
0
function initialize() { 
var mapOptions = { 
    center: new google.maps.LatLng(41.001188, 21.330084), 
    zoom: 8 
}; 

我建立使用JavaScript和我只有一个HTML文件,其中我调用初始化函数来显示谷歌地图的Windows 8 Metro应用,但由于这种错误的应用程序失败:“谷歌未定义” 有谁知道我该如何解决这个问题?谷歌是未定义的错误 - Windows 8的Metro应用

回答

0

难道你错过了HTML文件中对Google API的引用吗? 事情是这样的头部分中:

<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=visualization"></script>

+0

没有。我已经有了这条线,但没有参数。我添加了它们,但仍然没有成功。我也在我的应用程序清单内容中使用它 –

1

你可能遇到的问题是,你不能加载远程脚本到“本地语境”,其中一个应用程序正常运行。这是在Features and restrictions by context上阐明的。

可以将远程脚本加载到“web上下文”中,这意味着您使用x-ms-webview元素作为承载映射的元素,并将Webview指向具有远程脚本引用的HTML文件。我在我的免费电子书Programming Windows Store Apps with HTML, CSS, and JavaScript, Second Edition的第2章(第72页)中构建的示例中使用了类似的方法(对于Bing地图)。在这一章中,我首先使用iframe,然后在第4章(从第191页开始)转到x-ms-webview。我还展示了如何与iframe/Webview进行沟通,以便应用程序可以驱动它。

结果是,如果您尝试将远程脚本加载到本地上下文中,它将被忽略,因此google的名称空间将不确定。

作为一种替代方法,您可以尝试下载远程脚本,并将其作为包的一部分包含进来,并引用它,就像您项目中的其他JS文件一样。但是,在本地上下文中还有其他限制可能会导致此脚本自行失败,特别是在尝试加载其他远程脚本时。因此,iframe/Webview方法更可靠。

顺便说一下,清单中的内容URI内容与此事无关;它特别适用于您在加载时授予远程脚本的权限。请参阅“应用内容的URI”在上述书的第4章(第197页)

0

在情况下,如果任何人面临这个问题还是再考虑先提这条线是:

 <script src='//maps.googleapis.com/maps/api/js?sensor=false'></script> 

然后提任何js资源或基于Google Maps Javascript API version 3的任何内容。

相关问题