JavaScript в KML игнорируется плагином Google Планета Земля - PullRequest
3 голосов
/ 16 ноября 2011

Я создал простой файл 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 Планета Земля.

Как ни странно, это также работает в плагине Google Планета Земля, если я запускаю его в консоли JavaScript после , когда шар уже отображается.Он просто не распознает код уже в файле.

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 16 ноября 2011

В целях безопасности API Earth удаляет любой JavaScript-код в описании Balloon.Обычный обходной путь - это прослушивание события щелчка на вашей метке (или, в более общем случае, события раскрытия всплывающей подсказки), а затем программное воссоздание HtmlDivBalloon с полным содержанием.Для более подробной информации проверьте http://code.google.com/apis/earth/documentation/balloons.html#getballoonhtmlunsafe

1 голос
/ 16 ноября 2011

У меня похожая проблема, и я искал решение.Я нашел этот ответ, который я еще не попробовал сам, но он может быть вам полезен:

http://markmail.org/message/ivlw7jv3u5nxwkde

Надеюсь, что так, - делитесь успехами, которые у вас есть!

0 голосов
/ 12 июня 2019

Простой код JavaScript (даже простой jQuery) может быть введен в или он будет работать. Однако только в среде Google Планета Земля. После устаревания API Google Планета Земля мы не можем использовать файл JS в .kml за пределами Google Планета Земля. Об этом подробнее здесь: http://www.mkrgeo -blog.com / контент-менеджмент-в-KML-файлов /

...