3

我创建了一个简单的 KML 文件,该文件可在独立的 Google 地球客户端中运行,但在 Google 地球插件中根本无法运行(无论使用何种浏览器):

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
    <Folder>
        <name>South Florida</name>
        <open>1</open>
        <Document>
            <name>Miami</name>
            <Style id="miami_style">
                <IconStyle>
                    <Icon>
                        <href>http://i.imgur.com/CNrRU.gif</href>
                    </Icon>
                </IconStyle>
                <BalloonStyle>
                    <text><![CDATA[<font face="Arial">$[description]</font>]]></text>
                </BalloonStyle>
            </Style>
            <Folder>
                <name>Miami</name>
                <open>1</open>
                <Placemark id="Miami">
                    <name>Miami</name>
                    <description><![CDATA[
                        <script type="text/javascript">
                            function hideImage() {
                                var image = document.getElementById("image");
                                image.style.opacity = 0;
                                image.style.MozOpacity = 0;
                                image.style.KhtmlOpacity = 0;
                                image.filter = "alpha(opacity=0)";
                            }
                        </script>
                        <button id='clicker' onclick='hideImage();'>Click Me</button>
                        <img id="image" src="http://i.imgur.com/4rhT7.png">
                    ]]></description>
                    <styleUrl>#miami_style</styleUrl>
                    <Point>
                        <coordinates>-80.22643611111111,25.788952777777777,0</coordinates>
                    </Point>
                </Placemark>
            </Folder>
        </Document>
    </Folder>
</kml>

基本上,我有一个默认显示的图像,我想让它在单击按钮时消失。最终,我希望能够通过单击来切换图像,但我认为这需要首先工作才能到达该步骤。

这在独立的 Google 地球中运行良好,但在 Google 地球插件中不起作用。

奇怪的是,如果我在气球已经显示在 JavaScript 控制台中运行它,这也适用于 Google 地球插件。它只是不承认文件中已经存在的代码。

有任何想法吗?

4

3 回答 3

3

出于安全目的,Earth API 会删除 Balloon 描述中的任何 javascript。一种常见的解决方法是侦听地标上的单击事件(或更一般的气球打开事件),然后以编程方式使用完整内容重新创建 HtmlDivBalloon。有关更多详细信息,请查看http://code.google.com/apis/earth/documentation/balloons.html#getballoonhtmlunsafe

于 2011-11-16T16:20:42.933 回答
1

我有类似的问题,并且一直在寻找解决方案。我找到了这个答案,我还没有尝试过,但它可能对你有用:

http://markmail.org/message/ivlw7jv3u5nxwkde

我希望如此——一定要分享你所拥有的任何成功!

于 2011-11-16T16:55:05.553 回答
0

A simple JavaScript code (even simple jQuery) can be inputted into or and it will work. However in the Google Earth environment only. After depreciation of the Google Earth API we cannot really use the JS in .kml file outside the Google Earth. Read more about it here: http://www.mkrgeo-blog.com/content-management-in-kml-files/

于 2019-06-11T22:46:13.520 回答