1

我不知道为什么例如我尝试自己复制这个示例https://google-developers.appspot.com/earth/documentation/samples/fetchkml_example之类的基本内容,但我无法让它工作。我正在使用我一直用于 Google Maps API 的密钥,所以我认为这部分应该没问题,但是当涉及到 KML 时,无论是获取还是解析它,我似乎都无法让它工作. 我已将我的 KML 文件放在这里https://sites.google.com/site/shahinkmlexamples/experiment/kml_example.kml,我的代码在下面,我自己的密钥号未显示

<html>
<head>
   <title>fetchkml_dom_example.html</title>
   <script src="//www.google.com/jsapi?key=MYKEY#"></script>
   <script type="text/javascript">
      var ge;
      google.load("earth", "1");

      function init() {
         google.earth.createInstance('map3d', initCB, failureCB);
      }

      function initCB(instance) {
         ge = instance;
         ge.getWindow().setVisibility(true);

         var href = 'https://sites.google.com/' + 'site/shahinkmlexamples/experiment/kml_example.kml';

         google.earth.fetchKml(ge, href, function(kmlObject) {
               if (kmlObject)
                  ge.getFeatures().appendChild(kmlObject);
               if (kmlObject.getAbstractView() !== null)
                  ge.getView().setAbstractView(kmlObject.getAbstractView());
         });
      }

      function failureCB(errorCode) {
      }

      google.setOnLoadCallback(init);
   </script>

</head>
<body>

   <div id="map3d" style="border: 1px solid silver; height: 400px; width: 600px;"></div>

</body>
</html>

所以我知道解决方案必须很简单,但我就是想不通。谢谢

4

2 回答 2

0

我不确定你的问题是什么。我将您的代码放入在线编辑器 - http://www.onlinehtmleditor.net/ 一个简单的复制和粘贴,它工作正常。

此外,关于 API 密钥。对于 Google 地球,您不再需要一个。只需使用下面的通用 javascript 调用

于 2012-09-12T17:45:07.807 回答
0

当您从本地文件加载它时(例如使用 notepad++ 并在 Chrome 中加载该文件),您需要将协议添加到脚本标签:

<script src="//www.google.com/jsapi?key=MYKEY#"></script>

变成:

<script src="https://www.google.com/jsapi?key=MYKEY#"></script>

如果没有该更改,您的页面将在本地文件系统中查找该文件。

它在示例中被省略,因此如果您的页面是 HTTPS,您的浏览器将加载 HTTPS 版本,如果您的页面是 HTTP,则加载 HTTP 版本。这可以防止浏览器中出现安全警告。

于 2012-09-13T18:32:38.770 回答