【问题标题】:Loading KML into Google earth?将 KML 加载到 Google 地球?
【发布时间】:2016-01-21 02:12:21
【问题描述】:

我不知道为什么例如我尝试自己复制这个示例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>

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

【问题讨论】:

    标签: html kml google-earth-plugin


    【解决方案1】:

    当您从本地文件加载它时(例如使用 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 版本。这可以防止浏览器中出现安全警告。

    【讨论】:

    • 你说得对,就是这样,不知道我怎么错过了。谢谢。
    • 别担心!如果您可以请单击复选标记以接受答案,它将为将来遇到同样问题的其他人列出:)
    【解决方案2】:

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

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

    【讨论】:

    • 感谢该网站,是的,它似乎在那里工作,但是当我使用记事本++,然后将其加载到谷歌浏览器中时,没有任何加载。我无法弄清楚这是什么原因。但是,使用文档的非 KML 可以工作。
    • 我不确定 GE 在本地主机上运行良好。尝试在互联网上托管它,看看它是否有效。
    • GE 在 localhost 上运行良好 - 您无法获取具有诸如 C:\path\to\file.kml 之类的路径的 kml 文件。 fetchKml(..) 需要一个网址。
    猜你喜欢
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2012-05-30
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多