Google地球插件嵌入在Blogger中,可生成2张地图

时间:2014-06-24 13:24:45

标签: kml google-earth-plugin kmz

将Google地球网络链接嵌入Blogger时出现了一些奇怪的问题。 我正在使用的代码如下所示,但我在同一页面上得到两个GE实例,一个在另一个之上。 它们必须单独生成,就好像我将边框粘贴到页面上的div样式中它只会影响一个实例。

<div id="map3d" style="border: 4px solid silver; height: 768px; width: 1024px;"></div>

但是,如果我完全从页面中删除此代码。两个实例都消失了。

除此之外,我已经让它运转起来,因为我想要。 (最终)

这是我在头部的代码

<!-- Earth -->
<script src="//www.google.com/jsapi?key=mykey"></script>
<script type="text/javascript">
  var ge;
  google.load("earth", "1", {"other_params":"sensor=false"});

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

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

     var href = 'http://urltomykmz';

     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>
<!-- Earth -->

感谢任何可以指出导致第二个实例的人。感谢。

1 个答案:

答案 0 :(得分:0)

您必须删除init()处理程序中onload的来电或google.setOnLoadCallback(init)来电,否则每次调用init时都会添加地图功能