Как создать многоцветный растр из файла KML с помощью gdal_rasterize (python)
Моя цель:
я пытаюсь показать несколько больших файлов KML (каждый файл> 15 МБ) на Картах Google через API Javascript Google Maps. Карты Google не позволяют использовать большие (>10 МБ) файлы KML, поэтому я выбрал другой подход.
Мой подход
Я пытаюсь создать JPG (или BMP/PNG/TIF, практически любой растровый формат) из файла KML для отображения на карте Google (через JavaSript API). Я сгенерирую растр из KML с помощью скрипта Python, а затем сохраню на сервере.
Что я пробовал
У меня есть файл KML размером около 19 МБ. В файле содержится 44281 функция с различными
styleUrl
. Каждый стиль имеет свой цвет.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<Folder>
<name>TIN</name>
<Style id="st0">
<PolyStyle>
<color>c8ffff42</color>
<fill>1</fill>
<outline>0</outline>
</PolyStyle>
</Style>
<Placemark>
<styleUrl>#st0</styleUrl>
<name>Triangle</name>
<Polygon>
<extrude>1</extrude>
<altitudeMode>relativeToGround</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
90.83860140223939,22.56362374022903,1
90.83847914572111,22.56351146126871,1
90.83860071944396,22.56351082716222,1
90.83860140223939,22.56362374022903,1
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
<Placemark>
<styleUrl>#st0</styleUrl>
<name>Triangle</name>
<Polygon>
<extrude>1</extrude>
<altitudeMode>relativeToGround</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
90.83872161027240,22.56339727989892,1
90.83860071944396,22.56351082716222,1
90.83847914572111,22.56351146126871,1
90.83872161027240,22.56339727989892,1
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
... 1000+ Other Placemarks ...
</Folder>
</Document>
</kml>
Файл выглядит следующим образом, когда я импортирую в Google Планета Земля,
Я попытался преобразовать KML в формат BMP (также пробовал формат .TIF) с помощью этой команды,
gdal_rasterize -of "BMP" -burn 255 -burn 0 -burn 255 -ot Byte -ts 600 600 doc.kml output.bmp
И это выход,
Растровый файл потерял различные цвета, определенные в KML.
Как я могу получить различные цвета, определенные в файле KML? Правилен ли мой подход или мне нужно генерировать растровое изображение каким-то другим инструментом?
Я новичок в мире ГИС/GDAL. Любая помощь или указание в правильном направлении будет для меня большим подспорьем. Заранее спасибо