Так что я работаю над проектом, который разрабатывался более года, но я только недавно стал участвовать. Моя задача состоит в том, чтобы преобразовать примерно 2500 KML-файлов в другой формат, импортировать эти файлы в Geoserver и затем скопировать связанную информацию о стиле для каждого файла. Я понимаю, что Geoserver позволяет вам импортировать файлы KML напрямую, однако наши файлы никогда не отображаются правильно, и мой начальник хотел бы отойти от формата KML по философским соображениям.
Используя ogr2ogr, я попытался преобразовать эти файлы в шейп-файлы ESRI, однако процесс преобразования сработал только примерно на трети файлов и удалил некоторые метаданные, требуемые в информации о стиле. Файлы, которые не преобразовывают код для многоугольников и точек, которые я прочитал, могут быть ошибкой для других программ, таких как QGIS.
Я также попытался поместить все файлы KML в базу данных PostGIS и преобразовать их таким образом. Однако это, кажется, удаляет все данные, оставляя практически пустые таблицы для импорта.
TL; DR Мне нужно найти способ конвертировать 2500 KML-файлов в формат, используемый Geoserver, и работать с информацией в стиле XML. Я полный ГИС Noob, и это мой первый раз, так что извините, если это кажется немного смешным.
Ответы:
В GeoServer данные и стиль разделены, их невозможно смешать. Вы можете автоматически сгенерировать SLD. Пока что я не знаю, существует ли конвертор для стиля kml в стиль геосервера.
источник
Во-первых, стиль Geoserver (SLD) и данные (KML) полностью отличаются. Импортируйте файл KML в Geoserver и позже, создайте файл SLD в редакторе стилей или создайте стиль в средстве просмотра (например, Mapfishapp) и затем сохраните файл .sld, чтобы легко получить sld без записи в XML (сложнее реализовать классификацию или другой специфический стиль, когда какая-то система это легко реализует).
Позже я использовал файлы KML для сохранения данных ГИС и все время терял атрибут (= данные потеряны). KML просто хранит информацию о геометрии. Лучше сохранить свои нативные данные в другом формате (атрибут CSV keep) или просто создать таблицу данных и после этого предоставить географическую информацию или непосредственно создать слой. (шейп-файл, CSV ...).
Я надеюсь, что помогу тебе ...
источник
Дополнительная информация в файле kml, которую вы хотите использовать и называете «метаданными», может быть в жаргоне KML:
Поскольку каждый файл kml является файлом ASCII, его можно обработать с помощью сценария обработки текста. Согласно моему пониманию, отдельный «слой» должен быть создан для каждого типа объекта, который вы хотите представить и стилизовать в Geoserver. Это означает, что из каждого файла kml вы получите несколько файлов в зависимости от вашей классификации типов объектов.
Не простая работа для готовых инструментов. Надеемся, что если все файлы 2.500 кмл будут созданы в одном приложении, они будут иметь одинаковую структуру. В этом случае вам потребуется подробный анализ этой структуры и множество пользовательских сценариев.
источник
Откройте kml и загляните внутрь, это звучит так, как будто все, что вам действительно нужно, - это данные, так как другие авторы предложили, что стили не на картах, поэтому ваша проблема заключается в преобразовании всех файлов, которые по сути являются просто текстовыми файлами, изучают некоторый Python
затем взломайте что-то вроде этого в форму: https://gist.github.com/linwoodc3/0306734dfe17076dfd34e09660c198c0
источник