我有一个服务器,它提供了一个xhtml页面,其中包含我想要显示在我的谷歌地球(或世界风)气球中的所有内容。 我希望地标气球在地图上单击时获取 html 页面。 为简单起见,我希望当您从地图中单击气球时,我的气球 www.yahoo.com。
任何在线搜索都会将我发送到可以连接到谷歌地球 API 的 Java 代码。 我真的希望有一种客户端 kml 方法来做到这一点。 是否有扩展数据标记或描述标记可用于使其工作? 我什至尝试使用嵌入标签,它非常适合您的管视频,但没有适用于 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>
...
你可以试试getBalloonHtmlUnsafe()和HtmlDivBalloon吗? https://developers.google.com/earth/documentation/balloons#getballoonhtmlunsafe
但是,将 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);
});
}
}
});
如果这仍然不起作用,请记住谷歌地球会清理大量气球数据,因此您可以尝试使用 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);