解决GeoServices发布带有中文属性字段的shp文件出现无法使用sld文件的问题

在GeoService开源地图服务器中,发布shp文件及风格文件sld是相互独立的。由于GeoService发布配置还不够灵活,所以直接发布带有中文属性字段的shp时,会发生许多问题。
例如如果shp文件中有一个属性字段为“名称”,当用Udig工具设置其它风格时如果使用了名称作为依据,就会在输出的配置文件中出现中文。如:

<?xml version="1.0" encoding="UTF-8"?> 
<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" 

xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
    <sld:UserLayer>
        <sld:LayerFeatureConstraints>
            <sld:FeatureTypeConstraint/>
        </sld:LayerFeatureConstraints>
        <sld:UserStyle>
            <sld:Name>WXQR</sld:Name>
            <sld:Title/>
            <sld:FeatureTypeStyle>
                <sld:Name>group 0</sld:Name>
                <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
                <sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>
                <sld:SemanticTypeIdentifier>colorbrewer:unique:custom</sld:SemanticTypeIdentifier>
                <sld:Rule>
                    <sld:Name>rule01</sld:Name>
                    <sld:Title>中</sld:Title>
                    <ogc:Filter>
                        <ogc:PropertyIsEqualTo>
                            <ogc:PropertyName>危险程度</ogc:PropertyName>
                            <ogc:Literal>中</ogc:Literal>
                        </ogc:PropertyIsEqualTo>
                    </ogc:Filter>
                    <sld:PolygonSymbolizer>
                        <sld:Fill>
                            <sld:CssParameter name="fill">#2892C7</sld:CssParameter>
                            <sld:CssParameter name="fill-opacity">0.2</sld:CssParameter>
                        </sld:Fill>
                        <sld:Stroke>
                            <sld:CssParameter name="stroke">#C0C0C0</sld:CssParameter>
                            <sld:CssParameter name="stroke-width">0.1</sld:CssParameter>
                        </sld:Stroke>
                    </sld:PolygonSymbolizer>
                </sld:Rule>
                <sld:Rule>
                    <sld:Name>rule02</sld:Name>
                    <sld:Title>低</sld:Title>
                    <ogc:Filter>
              
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 将Shp文件转换为kml文件,需要使用专业的地理信息软件如ArcGIS等。通过ArcGIS中的“批量拷贝”工具,可以将需要转换的shp文件批量复制到一个新的文件夹中,以便后续处理。 接下来,选中需要转换的Shp文件,在属性表中选择需要导出的字段值,如名称、经度、纬度等信息,然后使用“转换为KML”工具,将文件输出为kml格式,同时勾选标注选项,即可将需要的信息以标注的形式嵌入到kml文件中。 转换过程中需要注意,Shp文件字段值的正确性和完整性对转换结果影响很大,因此需要仔细检查和筛选导出的字段值。同时,对于大批量文件的转换,也需要注意处理过程中的内存和计算资源的消耗,以确保处理效率和质量。 ### 回答2: 将shp文件批量输出为kml文件带有标注的方法如下: 首先,需要安装 ArcGIS 软件。然后,使用 ArcMap 打开要批量转换的 shp 文件,选择要导出的图层。在“ArcToolbox” 工具箱中,选择 “Conversion Tools” >> “To KML”>> “Layer To KML” 工具。在弹出的 “Layer To KML” 窗口中,选择要输出的路径和文件名,如“D:\output.kml”,选择 “KML” 文件格式,并勾选 “Label Features in this layer” 选项。 选择要标注的字段,例如 “name” 字段。选择完成后,点击 “OK” 按钮开始批量转换。 如果需要自定义标注,可以使用 ArcMap 中的 “Label Manager” 工具,对标注进行编辑和设置。如果要添加自定义图标或符号,可以在 “Layer To KML” 窗口中,选择 “Icons” 选项卡,点击 “Add” 按钮来添加符号库,或者点击 “Customize Symbol” 按钮来自定义符号样式。 最后,点击 “OK” 按钮开始批量转换,待转换完成后,可以在输出路径下查看生成的 kml 文件以及带有标注的图层数据。 ### 回答3: 要实现根据字段值批量将shp文件输出转换为kml文件带标注,可以考虑使用GIS软件来进行处理。下面是具体的步骤: 第一步,先将需要转换的shp文件导入到GIS软件中。在导入的过程中,需要注意选择正确的坐标系,并将字段值与标注信息一一对应,方便后续的处理。 第二步,根据需要转换的字段值进行分类,可以使用软件中提供的查询工具,也可以手动勾选需要转换的要素。此处需要注意,如果有多个字段需要分类,则需要将它们进行组合,构成唯一的分类标识。 第三步,对每个分类进行批量转换,将它们输出为kml格式的文件,并附带标注信息。在输出的过程中,需要设置好标注的样式和位置,保证转换后的文件可以清晰地表达数据。 第四步,对输出的kml文件进行检查和修正。在转换过程中,可能会出现一些问题,如坐标偏移、标注位置错误等,需要及时进行调整。 最后,将修正后的kml文件保存及展示。保存时,可以按照一定的规则进行命名,以方便管理和查询。展示时,可以使用Google Earth等地图软件进行浏览,较好地体现数据的空间分布和相关信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值