将KML和样式信息导入Geoserver


9

因此,我正在从事一个已经开发了一年以上的项目,但是直到最近我才参与其中。我的任务涉及将大约2500个KML文件转换为另一种格式,将这些文件导入Geoserver,然后复制每个文件的关联样式信息。我意识到Geoserver允许您直接导入KML文件,但是,我们的文件似乎永远无法正确呈现,而我的老板出于哲学原因希望退出KML格式。

我尝试使用ogr2​​ogr将这些文件转换为ESRI Shapefile,但是转换过程仅对大约三分之一的文件起作用,并且删除了样式信息中要求的一些元数据。我读取的未转换多边形和点代码的文件对于QGIS等其他程序可能是错误的。

我还尝试将所有KML文件放入PostGIS数据库中,并像这样进行转换。但是,这似乎删除了所有数据,从而基本上保留了空白表供导入。

TL; DR我需要找到一种方法来将2500个KML文件转换为Geoserver可用的格式,并且可以处理XML样式信息。我是一个完整的GIS新手,这是我第一次发布,因此对这似乎有点可笑,我感到抱歉。


所有KML文件的样式基本相同还是全部不同?如果是前者,您可能会发现只需为使用SLD(基于XML的格式)的GeoServer滚动样式文件(或文件集)即可。
nmtoken


我不知道在哪里可以问这个问题,但是我确定你知道我的答案。无论如何,是否在这里将KML上传为GeoServer上的新数据源?@samane
Mostafa Fallah

Answers:


1

在GeoServer中,数据和样式是分开的,无法混合使用。您可以自动生成SLD。到目前为止,我不知道是否存在用于kml样式到geoserver样式的转换器。


1

首先,Geoserver样式(SLD)和数据(KML)完全不同。在Geoserver中导入KML文件,然后再在样式编辑器中创建SLD文件,或在查看器中创建样式(例如Mapfishapp),然后保存.sld文件以轻松获得sld,而无需在XML中编写(更难以实现分类或某些系统轻松实现时的其他特定样式)。

后来,我使用KML文件保存GIS数据,并且一直以来,我都丢失了属性(=数据丢失​​)。KML仅保留几何信息。最好将您的nativ数据保存为另一种格式(CSV保留属性),或者仅创建数据表,然后提供地理信息或直接创建图层。(shapefile,Csv ...)。

我希望我能帮助你...


1

您希望在kml文件中使用的附加信息(称为“元数据”)可以在KML术语中:

  1. 样式和样式图
  2. 扩展数据
  3. 地标“描述”字段中的自定义信息,通常以html表格的形式

由于每个kml文件都是ASCII文件,因此可以通过文本处理脚本对其进行处理。根据我的理解,必须为要在Geoserver中呈现和设置样式的每种对象类型创建一个单独的“层”。这意味着,根据对象类型的分类,每个kml文件最终都会有几个文件。

对于现成的工具而言,这并不是一件简单的工作。希望如果所有2.500 kml文件是使用同一应用程序创建的,则它们将具有相同的结构。在这种情况下,您将需要对此结构进行详细分析,并需要大量自定义脚本。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.