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

Заливка полигонов KML

Добавлено: 11 июл 2019, 16:31
athe
Доброго времени суток.
Имею в наличии большое количество безымянных полигонов. Отличаются только геометрией и цветом заливки. Возможно ли конвертировать их в .shp с сохранением информации по заливке (в атрибутивную таблицу к примеру)?
Пример мультиполигона:
Изображение
Заранее благодарен.
С важением,
athe

Re: Заливка полигонов KML

Добавлено: 11 июл 2019, 17:43
trir
возможно

Re: Заливка полигонов KML

Добавлено: 13 июл 2019, 03:16
xtxskif
реккомендую QGIS

Re: Заливка полигонов KML

Добавлено: 15 июл 2019, 11:36
athe
Добрый день.
QGIS "видит" множество полигонов и пустую атрибутивную таблицу. Открывал kml через блокнот. Код заливки присваивается переменной, которая в свою очередь присваивается к полигону. Каким образом выудить эту информацию в более-менее удобоваримый вид?
*пикладываю пример файла во вложении.
С уважением,
athe.

Re: Заливка полигонов KML

Добавлено: 15 июл 2019, 11:44
trir
открыть kml в Excel'e и вытащить coordinates и styleUrl, а потом формулами сделать .csv с wkt

или ogr и sql

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

ogr2ogr -f CSV output.csv input.kml -sql "select *,OGR_GEOM_WKT from some_kml_layer"
https://github.com/dwtkns/gdal-cheat-sheet

Re: Заливка полигонов KML

Добавлено: 16 июл 2019, 12:40
Игорь Белов
  1. Конвертируем KML в Shapefile. Шелл-скрипт для кучи файлов:

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

    for f_src in *.kml
    do
        f="${f_src%.*}"
        ogr2ogr -f "ESRI Shapefile" -sql "SELECT Name, OGR_STYLE FROM \"${f}\"" "${f}.shp" "${f_src}"
    done
    
  2. Создаём таблицу соответствия "стиль <==> цвет" в текстовом файле. Хорошо слепить скриптик для этого. В данном случае с 11 стилями в единственном файле я скопипастил значения из KML врукопашную в файл style.csv:

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

    style_id,color
    @SOBREL102,#699cc7
    @SOBREL50,#1f3f81
    @SOBREL41,#153073
    @SOBREL3,#0d2267
    @SOBREL70,#38619d
    @SOBREL100,#00ff00
    @SOBREL12,#010c49
    @SOBREL61,#2b508f
    @SOBREL2,#061657
    @SOBREL9,#5788b9
    @SOBREL80,#4774ab
  3. Открываем то и другое в QGIS и джойним к шейпу текстовую таблицу по полю стиля.
    Screenshot_2019-07-16_12-29-41.png
    Screenshot_2019-07-16_12-29-41.png (29.08 КБ) 235 просмотров
  4. В стилях шейпа определяем цвета полигонов содержимым поля цвета.
    Screenshot_2019-07-16_12-36-43.png
    Screenshot_2019-07-16_12-36-43.png (14.79 КБ) 235 просмотров
Вуаля:

Re: Заливка полигонов KML

Добавлено: 17 июл 2019, 07:56
Игорь Белов
Как оказалось, в KML цвет даётся в формате ABGR. Пришлось «перевернуть» цвета в файле style.csv:

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

style_id,color
@SOBREL102,#c79c69
@SOBREL50,#813f1f
@SOBREL41,#733015
@SOBREL3,#67220d
@SOBREL70,#9d6138
@SOBREL100,#00ff00
@SOBREL12,#490c01
@SOBREL61,#8f502b
@SOBREL2,#571606
@SOBREL9,#b98857
@SOBREL80,#ab7447

Re: Заливка полигонов KML

Добавлено: 18 июл 2019, 10:58
athe
Добрый день. Прошу прощения за долгое отсутствие. Всем большое спасибо за ответы.
С уважением,
athe.