使用Google.Load()的Google地球插件

时间:2013-05-28 11:18:24

标签: extjs google-earth-plugin sencha-architect

我的问题可能有一个简单的答案,但我们将不胜感激。

我在我的GE插件中使用ExtJs。要使插件正常工作,我需要在主HTML页面中包含以下内容。

<!DOCTYPE html>

<!-- Auto Generated with Sencha Architect -->
<!-- Modifications to this file will be overwritten. -->
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>MDS</title>
    <script src="https://www.google.com/jsapi" id="GoogleEarth"></script>
    <script src="/static/googleearth/Ext.ux.GEarthPanel-1.3.js" id="GoogleEarth">    </script>
    <script type="text/javascript" src="app.js"></script>

    <script type="text/javascript">
        google.load("earth", "1");
        google.load("maps", "2.xx");
    </script>
</head>
<body></body>
</html>

现在,当我想删除以下代码并尝试单独运行它时,页面似乎继续加载。

    <script type="text/javascript">
        google.load("earth", "1");
        google.load("maps", "2.xx");
    </script>

即使我删除了代码并将其粘贴到自己的.js文件中,问题仍然存在。

例如使用

<script type="text/javascript" src="/static/GoogleEarthStartup.js" id="Test"></script>

内容如

google.load("earth", "1");
google.load("maps", "2.xx");

似乎想要使用脚本标记保留在主页面中。

无论如何我能解决这个问题吗?

我要问的主要原因是我每次保存项目时都会使用一个覆盖我的主html的包。

该软件包允许我通过链接添加脚本,如上所示,尽管它对结果没有影响。

我收到错误消息 TypeError:google.earth is undefined

请建议。

1 个答案:

答案 0 :(得分:0)

可能只是脚本元素的顺序。

脚本按照文档中的顺序执行,因此您的错误是因为app.jsExt.ux.GEarthPanel-1.3.js中的某些内容在文件之前引用了google.earth GoogleEarthStartup.js已被执行 - 因此google.earth is undefined因为google.load("earth", "1");尚未被调用。

尝试修复尝试简单地重新排序脚本元素,如此...

<script type="text/javascript" src="//www.google.com/jsapi" id="GoogleEarth"></script>
<script type="text/javascript" src="/static/GoogleEarthStartup.js" id="Test"></script> 
<script type="text/javascript" src="/static/googleearth/Ext.ux.GEarthPanel-1.3.js" id="GoogleEarth"></script>
<script type="text/javascript" src="app.js"></script>