我似乎遇到了一个问题,即单击时不显示地标描述。气球打开,从大小看,文本可能确实存在,但没有显示。该页面是相当动态的,加载了多个 kml,所以我想知道我是否在某个地方杀死了代码中的地标?它们在地球应用程序中显示良好,所以我假设它与插件或我加载 kml 的方式有关。
这是一个示例:http ://tour.frederickwildman.com/jaboulet 任何有关如何进行的帮助或建议都会非常有帮助。谢谢
我似乎遇到了一个问题,即单击时不显示地标描述。气球打开,从大小看,文本可能确实存在,但没有显示。该页面是相当动态的,加载了多个 kml,所以我想知道我是否在某个地方杀死了代码中的地标?它们在地球应用程序中显示良好,所以我假设它与插件或我加载 kml 的方式有关。
这是一个示例:http ://tour.frederickwildman.com/jaboulet 任何有关如何进行的帮助或建议都会非常有帮助。谢谢
很难确定,因为我只能间歇性地重现该问题,但我认为有两个可能的问题。
首先,您的气球正在将其内容擦洗为地球 api。您可以通过查看打开气球的标记来确认这一点。您将看到类似以下内容的内容已被删除。
<!--
Content-type: mhtml-die-die-die
-->
其次,由于内容,气球似乎在调整大小时出现问题。
要克服这些问题,您可以选择自己处理气球事件。然后,您可以调用getBalloonHtmlUnsafe()来清理气球内容, 调用setMaxWidth()和setMaxHeight()来调整大小。例如
google.earth.addEventListener(ge.getGlobe(), 'click', function(event) {
// exit if not a placemark
if(event.getTarget().getType() != 'kmlPlacemark') return;
// cancel the default behaviour
event.preventDefault();
// get the un-scrubbed content and show the max-sized balloon
var content = placemark.getBalloonHtmlUnsafe(),
balloon = ge.createHtmlStringBalloon('');
balloon.setFeature(event.getTarget());
balloon.setContentString(content);
balloon.setMaxWidth(800);
balloon.setMaxHeight(600);
ge.setBalloon(balloon);
});