来自url的kml气球中的动态内容

来自url的kml气球中的动态内容,kml,google-earth,google-earth-plugin,balloon,Kml,Google Earth,Google Earth Plugin,Balloon,我有一个服务器,它提供一个xhtml页面,其中包含我希望在谷歌地球(或worldwind)气球中显示的所有内容。我希望placemark气球在地图上单击时获取html页面。为了简单起见,当你从地图上点击我的气球时,我希望它是www.yahoo.com 任何在线搜索都会将我发送到可以挂接到google earth api的java代码。我真的希望有一个客户端kml的方式来做到这一点。是否有一个扩展数据标签或描述标签,我可以使用它来工作?我甚至尝试过使用嵌入标签,这对YouTube视频非常有用,但没

我有一个服务器,它提供一个xhtml页面,其中包含我希望在谷歌地球(或worldwind)气球中显示的所有内容。我希望placemark气球在地图上单击时获取html页面。为了简单起见,当你从地图上点击我的气球时,我希望它是www.yahoo.com

任何在线搜索都会将我发送到可以挂接到google earth api的java代码。我真的希望有一个客户端kml的方式来做到这一点。是否有一个扩展数据标签或描述标签,我可以使用它来工作?我甚至尝试过使用嵌入标签,这对YouTube视频非常有用,但没有html页面的插件。非常感谢您的帮助

这也可以,但iframe非常难看-

<Placemark> 
  <name>Test Placemark</name> 
    <description> 
      <![CDATA[ 
        <iframe src="http://www.yahoo.com" frameborder="0" 
           scrolling="auto" height="500" width="600"></iframe> 
      ]]> 
    </description> 
...

测试地标
]]> 
...

您可以试试GetBallootHtmlUnsafe()和HtmlDivBallon

但是,如果要将kml添加到页面中,则可以将单击功能绑定到这些位置标记

google.earth.fetchKml(ge, url, function(kmlObject){
   if(kmlObject){
      ge.getFeatures().appendChild(kmlObject);

      if(kmlObject.getType() === 'KmlPlacemark'){
          google.earth.addEventListener(kmlObject, 'click', function(event){
               event.preventDefault();

               var balloon = ge.createHtmlDivBalloon('');
               var content = kmlObject.getBalloonHtmlUnsafe();
               balloon.setFeature(kmlObject);
               var div = document.createElement('div');
               div.innerHTML = content;
               balloon.setContentDiv(div);

               ge.setBalloon(balloon);
          });
      }
   }
});
如果这仍然不起作用,请记住google earth会过滤大量气泡数据,因此您可以尝试使用jquery注入html

var balloon = ge.createHtmlDivBalloon('');
var content = kmlObject.getBalloonHtmlUnsafe();
balloon.setFeature(kmlObject);
var div = document.createElement('div');
balloon.setContentDiv(div);

ge.setBalloon(balloon);
$(div).html(content);