#kml #google-earth-plugin
#kml #google-earth-plugin
Вопрос:
Эта проблема мучает меня около 2 дней, Google не помогает мне разобраться с этим. В принципе, приведенный ниже код должен определять текст внутри balloon. К сожалению, это работает не так. В итоге мы получаем то, что кажется запасным вариантом, если GE не сможет обработать стиль, определенный в KML.
Вот один (из многих) способов, которыми я пытался внедрить KML непосредственно в плагин GE для рендеринга.
var kmlString = ''
'<?xml version="1.0" encoding="UTF-8"?>'
'<kml xmlns="http://www.opengis.net/kml/2.2">'
' <Document>'
' <Style id="sitegeom">'
' <BalloonStyle>'
' <text>'
' <![CDATA['
' this is<br>a test'
' ]]>'
' </text>'
' </BalloonStyle>'
' </Style>'
' </Document>'
'</kml>';
var kmlObject = $wnd.ge.parseKml(kmlString);
$wnd.ge.getFeatures().appendChild(kmlObject);
Код, на котором основан этот фрагмент, взят непосредственно из GE docs. Поди разберись. У кого-нибудь есть идея?
Ответ №1:
Документ KML, который вы добавляете позже, скорее всего, не сможет получить доступ к идентификатору #sitegeom, который вы определили в начале в отдельном документе KML, это не входит в область видимости.
Попробуйте следовать инструкциям Google Earth doc re: this, поместив определение стиля в отдельный файл:
Если определение стиля находится в том же файле, перед идентификатором стиля поставьте знак #. Если определение стиля находится во внешнем файле, включите полный URL-адрес в элемент.
например:
<styleUrl>http://www.example.com/path/to/your/style.kml#sitegeom</styleUrl>
Ответ №2:
Возможно, вопрос не совсем ясен для меня, но я думаю, вам нужно описать Placemark
в вашем KML и определить свой стиль styleUrl
следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Style id="sitegeom">
<BalloonStyle>
<text>
<![CDATA[
this is<br>a test
]]>
</text>
</BalloonStyle>
</Style>
<Placemark>
<Point>
<coordinates>104.30000001,52.283333343333</coordinates>
</Point>
<styleUrl>#sitegeom</styleUrl>
</Placemark>
</Document>
</kml>
Это правильная идея?
Комментарии:
1. Не совсем… метки берутся из совершенно другого объекта KML, который создается «на лету» на более позднем этапе кода.