Страница 1 из 1

Экспортировать надписи в KML

Добавлено: 24 сен 2011, 09:07
bolotoved
Можно ли с помощью GDAL/OGR экспортировать шейп-файл в KML так, чтобы при его запуске в GoogleEarth отображались надписи из определенной колонки атрибутов.
Данная команда:

Код: Выделить всё

ogr2ogr -f KML output.kml input.shp -dsco NameField=RegionName
не дает желательного результата -- надписи отображаются только при наведении на объект мышкой.

Re: Экспортировать надписи в KML

Добавлено: 24 сен 2011, 12:57
Дмитрий Барышников
Версия GDAL/OGR и пример файла в студию.

Re: Экспортировать надписи в KML

Добавлено: 24 сен 2011, 13:31
bolotoved
GDAL/OGR Version 1.8.1

Re: Экспортировать надписи в KML

Добавлено: 24 сен 2011, 14:21
Александр Мурый
Как я понял, простым конвертированием в KML подписи к полигонам в GE не добавишь.
Сами по себе полигоны, вроде бы, не подписываются. Нужно или ставить внутри них точку (типа "центроида") и задавать ей соотв. стиль и подпись, либо делать т.н. MultiGeometry с полигоном и точкой для подписи. Теперь весь вопрос, КАК?

Re: Экспортировать надписи в KML

Добавлено: 24 сен 2011, 14:46
bolotoved
Вот пример того, чего бы хотелось, полученный с помощью импорта Shp в KMZ в GlobalMapper

Re: Экспортировать надписи в KML

Добавлено: 24 сен 2011, 15:06
Александр Мурый
Если исп-ть 1-й вариант, как более простой (полигон + точка в нём), то получается примерно так:
Selection_001.png
Selection_001.png (275.12 КБ) 10754 просмотра
Соотв-й KML:
rodugod_polygon_name.kml
(23.97 КБ) 855 скачиваний
Перед первым <Placemark> первого полигона я вставил:

Код: Выделить всё

<Placemark>                                                                                                                           
  <name>Каюков  Степан  Егорович</name>                                                                                               
  <Style><IconStyle><scale>0</scale></IconStyle></Style>                                                                              
  <Point>                                                                                                                             
    <coordinates>72.723,59.725</coordinates>                                                                                          
  </Point>
</Placemark>
Здесь <scale>0</scale> "выключает" отображение точечного символа. Включить можно с помощью <scale>1</scale>. Но, кстати, надпись уезжает при выключении точки -- получается привязка к координатам точки середины надписи, а не её левого края.

Re: Экспортировать надписи в KML

Добавлено: 24 сен 2011, 15:17
Александр Мурый
А в выложенном "200_000_Khanty.kmz" исп-ся как раз таки <MultiGeometry>. IMHO, надо скриптовать. Хотя, если данных не очень много, можно и вручную в текст. редакторе поправить KML, полученный с пом. OGR.

Может, кто-то знающий подскажет ещё утилиту для решения этой задачи.

Re: Экспортировать надписи в KML

Добавлено: 25 сен 2011, 09:10
bolotoved
Подведем итог:
Чтобы создать KMZ с полигонами и надписями к ним из шейпа нужно:
1. Создать шейп центроидов необходимых полигонов (Например в QGIS: Вектор/Обработка геометрии/Центроиды полигонов
2. С помощью команды GDAL/OGR последовательно преобразовать и точечный и полигональный слои в KML

Код: Выделить всё

ogr2ogr -f KML output.kml input.shp -dsco NameField=RegionName
3. Открыть полученные KML в Google Earth. По умолчанию они занесутся в папку "Временные метки" GE. Настроить отображение полигонов и точек (точки сделать прозрачными): щелкаем правой кнопкой мыши по точечному слою --> -->Свойства --> Вкладка "Стиль, цвет". В графе значок, прозрачность устанавливаем равной 0.
4. Копируем точечный и полигональный слои в папку "Мои метки" (откуда предварительно удаляем все лишнее). И сохраняем новый комплексный KMZ: Файл/Сохранить местоположение как.