четверг, 7 мая 2009 г.

Формат файлов KML и его использование на картах Google. Продолжение

В этой заметке мы продолжаем изучать формат файлов KML начатый в заметке «Формат файлов KML и его использование на картах Google. Введение».

В этой заметке мы рассмотрим как можно задавать в файле KML несколько географических объектов и задавать стили для их отображения.

Давайте рассмотрим это на конкретном примере.

Привожу часть кода  KML-файла:

<?xml version="1.0" encoding="UTF-8"?>

<kml xmlns="http://www.opengis.net/kml/2.2">

<Document>

<name>Кинотеатры Нижнего Новгорода</name>

<description>Местоположение кинотеатров Нижнего Новгорода на GoogleMaps</description>

<Style id="kino_st">

<IconStyle>

<scale>1.2</scale>

<Icon>

<href>http://maps.google.com/mapfiles/kml/pal2/icon30.png</href>

</Icon>

<hotSpot x="0.5" y="0" xunits="fraction" yunits="fraction"/>

</IconStyle>

<BalloonStyle>

<text>$[description]</text>

</BalloonStyle>

</Style>

<Placemark>

<name>Кинотеатр Импульс</name>

<description>

<![CDATA[

<div style="text-align:center"><strong>Кинотеатр Импульс</strong><br /><a href="http://www.map.cek.ru/index.php?option=com_content&view=article&id=25&Itemid=136" target="blank"><img src="http://www.map.cek.ru/images/stories/afisha/cinema/imp.jpg" alt="Информация о кинотеатре Импульс с афишой фильмов" title="Информация о кинотеатре Импульс с афишой фильмов" width="100" height="62" /></a><br />пр. Гагарина, 192</div>

]]>

</description>

<styleUrl>#kino_st</styleUrl>

<Point>

<altitudeMode>relativeToGround</altitudeMode>

<coordinates>43.959184,56.237457,0</coordinates>

</Point>

</Placemark>

…..

<Placemark>

<name>Кинотеатр Электрон</name>

<description>

<![CDATA[

<div style="text-align:center"><strong>Кинотеатр Электрон</strong><br /><a href="http://www.map.cek.ru/index.php?option=com_content&view=article&id=31&Itemid=146" target="blank"><img src="http://www.map.cek.ru/images/stories/afisha/cinema/elektron.jpg" alt="Информация о кинотеатре Электрон с афишой фильмов" title="Информация о кинотеатре Электрон с афишой фильмов" width="100" height="62" /></a><br />пр. Гагарина, 98</div>

]]>

</description>

<styleUrl>#kino_st</styleUrl>

<Point>

<altitudeMode>relativeToGround</altitudeMode>

<coordinates>43.978839,56.274389,0</coordinates>

</Point>

</Placemark>

</Document>

</kml>

Полный текст файла можно загрузить http://webmap-blog.ru/examples/kml/primer_kml_2.km.

Что же мы видим нового в этом примере?

Здесь появился новый тег <Document>.

Внутрь него помещается все содержимое kml-файла.

Затем мы указываем имя и описание создаваемого документа.

В файле kml возможно задание стилей для отображения элементов на карте.

Если мы определяем стиль в начале документа, тогда мы можем использовать его для последующих элементов.

В нашем примере мы определяем стиль с идентификатором  kino_st.

Внутри него мы задаем стиль для значка метки  IconStyle и для балуна BalloonStyle.

Параметр scale задает масштаб значка метки.

<Icon>  <href> - указывают на файл с изображением значка, в нашем случае icon30.png.

Параметр hotspot задает отступы от координат точки метки для изображнеия по х и по y.

Для стиля балуна мы указаваем, что это будет текст параметра description.

После задания стиля идет список меток на карте с параметрами.

В нашем примере это перечень кинотеатров Нижнего Новгорода.

Каждая метка заключена в парный тег <Placemark>.

Для которой задается название name, описание description, которое будет появлятся в балуне при щелчке по метке.

Стиль отображения и координаты точки.

Для написания HTML-кода внутри тега <description> его помещают внутрь тега CDATA.

Тег <altitudeMode> служит для задания наземного режима отображения.

В Google Earth 5.0 появилась возможность работы с новыми режимами – Окен и Космическое пространство.

Посмотреть работающий пример и исходный код можно здесь.

Подробнее о формате KML можно узнать по адресу http://code.google.com/intl/ru_ALL/apis/kml/documentation/

Продолжение следует …

Комментариев нет:

Отправить комментарий