Как создать многоцветный растр из файла 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 Планета Земля,Предварительная версия 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. Любая помощь или указание в правильном направлении будет для меня большим подспорьем. Заранее спасибо

0 ответов

Другие вопросы по тегам