将KML加载到Google地球?

时间:2012-09-11 20:24:20

标签: html kml google-earth-plugin

我无法弄清楚为什么我会尝试像我自己一样重现一些基本的例子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>

所以我知道解决方案必须简单,但我无法理解。 感谢

2 个答案:

答案 0 :(得分:0)

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

另外,关于API密钥。对于Google地球,您不再需要它。只需使用下面的通用JavaScript调用

答案 1 :(得分: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版本。这可以防止浏览器中的安全警告。