28.12.2009 14:25

ListStyle как один из параметров свойств отображения объектов в Google Earth и возможности его использования в Неогеографических приложениях


Как Вы наверно знаете Google Earth как одно из приложений работающих в ключе Неогеографии позволяет отображать различные объекты с географической привязкой, а так же дополнять объекты семантической информацией.


Одним из основных объектов в среде Google Earth являются 3D модели. При помощи этих объектов мы можем сейчас взглянуть на города не как на плоские бумажные карты и планы, а как на геометрически точные и географически привязанные 3D копии этих самых городов.

Так что же нам дают эти модели кроме просто красивой игрушки?

 

Давайте рассмотрим такой насущный для каждого человека вопрос как поиск жилья...
Что нам предлагают обычные методы? Скорее всего человек начнет просматривать объявления. Он видит интересный вариант в котором указан адрес, общая и жилая площади и еще какая то информация. Зачастую в объявлении нет даже фотографии дома, там не описана характеристики придомовой территории, и тем более не указаны характеристики близь лежащих строений.


Чтобы как то определиться с этими вопросами необходимо прибегнуть к неогеографическим методам. Первый и простейший шаг это взглянуть на интересующий дом на космоснимках. Вторым шагом будет взглянуть на дом и окружающие его строения в виде 3D моделей.

 

Дальше пока еще никто не пошел, а так хотелось бы взглянуть еще и на планировку квартиры!

 

Как раз это то и можно реализовать при помощи параметра ListStyle.

С синтаксисом параметра <ListStyle> Вы можете ознакомиться в статье KML - ListStyle. Описание синтаксиса и пример создания модели здания с поэтажными планами.

 

В данном случае, чтобы реализовать возможность просмотра поэтажных планов здания необходимо создать N-ое количество моделей, где N - количество уровней здания, а также реализовать показ единовременно лишь одной из моделей (интересующий уровень)

В этом то и поможет параметр <ListStyle>.

 

Рассмотрим в качестве примера условный коттедж.

Основной файл KML будет выглядеть так:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>ListStyle.kml</name>
<open>1</open>
<Style id="radioFolderExample">                           <!-- Начало описания слиля radioFolderExample -->
<ListStyle>
<listItemType>radioFolder</listItemType>         <!-- Тип отображения radioFolder (ТОЛЬКО ОДИН ОБЪЕКТ ЕДИНОВРЕМЕННО) -->
</ListStyle>
</Style>
<Folder>
<name>ListStyle Examples</name>
<open>1</open>
<Folder>
<name>radioFolder example</name>
<open>1</open>
<NetworkLink>
<!-- Ссылка на файл с моделью 1-ого этажа -->
<name>1 этаж</name>
<visibility>1</visibility>
<open>0</open>
<description></description>
<refreshVisibility>0</refreshVisibility>
<flyToView>0</flyToView>
<Link>
<href>http://www.kirov2kml.ru/images/stories/Lessons/KML/009/Domik_lesson1.kmz</href>
<refreshMode>onChange</refreshMode>
</Link>
</NetworkLink>
<NetworkLink>
<!-- Ссылка на файл с моделью 2-ого этажа -->
<name>2 этаж</name>
<visibility>1</visibility>
<open>0</open>
<description></description>
<refreshVisibility>0</refreshVisibility>
<flyToView>0</flyToView>
<Link>
<href>http://www.kirov2kml.ru/images/stories/Lessons/KML/009/Domik_lesson2.kmz</href>
<refreshMode>onChange</refreshMode>
</Link>
</NetworkLink>
<NetworkLink>
<!-- Ссылка на файл с моделью всего дома -->
<name>Весь дом</name>
<visibility>1</visibility>
<open>0</open>
<description></description>
<refreshVisibility>0</refreshVisibility>
<flyToView>0</flyToView>
<Link>
<href>http://www.kirov2kml.ru/images/stories/Lessons/KML/009/Domik_lesson3.kmz</href>
<refreshMode>onChange</refreshMode>
</Link>
</NetworkLink>
<styleUrl>#radioFolderExample</styleUrl>   <!-- Указываем, что объекты этой папки будут отображаться в стиле radioFolderExample -->
</Folder>
</Folder>
</Document>
</kml>



В результате мы получаем возможность помимо просмотра 3D модели здания еще и увидеть поэтажные планы этого здания (и тоже в 3D)!

 

 

3D модель здания и меню выбора типа просмотра.

3D модель - план 1-ого этажа.

3D модель - план 2-ого этажа.