使用Google Earth API和KML以获取fetchkml并嵌入为在线3D地图

时间:2014-01-28 22:00:17

标签: javascript html kml google-earth-plugin

我编写了一个我想要嵌入的KML文件,以便在线创建3D地图。 我已成功使用Google地球插件发送文件并将其嵌入Blogger中,并验证了我的代码。但是,当我尝试使用插件并将代码嵌入我的网站时,它不起作用。我在我的服务器上托管了kml文件,该文件还托管了我要将地图发布到的网站。 (因此,KML文件不是来自计算机,而是托管在服务器上)。

由于Google Plug in无法嵌入文件,我试图找出原因。 我按照KML开发人员指南遵循了说明并添加了功能(见下文)

<script>
<html>
  <head>
    <script src="https://www.google.com/jsapi?key=YOURAPIKEY"></script>
    <script>
      google.load('earth','1', {'other_params':'sensor=false'});

      var ge = null;

      function init() {
        google.earth.createInstance('map3d', initCallback, failureCallback);
      }

      function initCallback(pluginInstance) {
        ge = pluginInstance;
        ge.getWindow().setVisibility(true);
      }

      function failureCallback() {
        // we can do something here if there's an error
      }
    </script>

  </head>
  <body onload="init()" id="body">
    <div id="map3d" style="width: 500px; height: 500px;"></div>
  </body>
</html>

但是,我不确定我错过了什么。为了使Google API能够运行,是否需要将更多Javascript添加到kml才能工作?我相信我需要完善kml,包括fetchkml的代码,但我已经用代码达到了死胡同。我在Google Earth API和kml上阅读了很多问题,但无法找到明确的答案,说明为什么这可以在Blogger上运行,但不能在我的网站上运行。 我在我的网站上拥有权限,因此这不是问题。

一些Stackoverflow问题已经帮助但没有清楚地回答我的问题:

Google Earth API, KML on local Web Server

Google earth fetchKml timeout

帮助我将我的kml与Google Earth API和javascript集成的任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

代码看起来与行

之外的AOK

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

真的应该在查询中包含你的api密钥,否则就是

<script src="https://www.google.com/jsapi"></script>

实际上,可能是您只是收到了无效的API密钥错误。

如果这不能解决,你可以发布一个链接到你的实际网站吗?