二维下,行政区划借助 geoserver样式配置,实现伪3d效果

参考文章:通过sld样式拉伸渲染为伪3d建筑的地图效果通过geoserver发布 - 灰信网(软件开发博客聚合)

SLD 样式 之GeoServer中设计2.5维建筑物 - fengl - 博客园

最终效果图如下:

首先要知道拉伸的对象是建筑或者其他附着设施,即面图层,点和线要素不存在高度的拉伸。

配置中关注一下内容:

   主要是isometric和offset两个ogc:function的名称
   isometric方法名中

     <Geometry>
          <ogc:Function name="isometric">
            <ogc:PropertyName>the_geom</ogc:PropertyName>
            <ogc:Literal>0.08</ogc:Literal>
          </ogc:Function>
     </Geometry>
 
/*
第一个参数the_geom是指空间数据类型的字段名称,在geoserver中发布矢量数据的时候能看到要素
的属性字段,一般情况下空间数据类型的默认字段名称就是the_geom。
第二个参数是指拉伸长度值单位与要素所在坐标系一致
*/

 然后设置 offset偏移量

<PolygonSymbolizer>
        <Geometry>
          <ogc:Function name="offset">
            <ogc:PropertyName>the_geom</ogc:PropertyName>
            <ogc:Literal>0</ogc:Literal>
            <ogc:Literal>150</ogc:Literal>
          
          </ogc:Function>
        </Geometry>
        <Fill>
          <CssParameter name="fill">#BAD8E2</CssParameter>
          <CssParameter name="fill-opacity">1</CssParameter>
        </Fill>
    
</PolygonSymbolizer>
 
 
/*
    这里都是固定的拉伸值和偏移量,在实际应用中可以借助地理要的字段进行要素的拉伸,将
    <ogc:Literal>的属性换成<ogc:PropertyName>height</ogc:PropertyName>height是指字段名
*/

四、问题总结
问题一:比如设置函数offset的X,Y偏移量,因为坐标系原因,你写的值太小比如0.001或者太大比如100000等,导致看不到这种效果,所以根据情况先慢慢增大Y值的偏移量看有没有伪三维的效果。

<code> <ogc:Literal>0</ogc:Literal>
<ogc:Literal>0.08</ogc:Literal> </code>

问题二:设置函数offset的偏移量Y值,但是没有和isometric函数的拉伸值保持一致,所以导致伪三维效果不好看,所以最好保持offset的Y值和isometric函数的拉伸值保持一致
问题三:配色问题,一定要选好颜色,比如百度那种就不错,让人开起来想三维的。

上面效果图实现:

叠加三个wms图层,然后配置不同的样式(第一层是正常的样式,不设置偏移等属性),注意:wms顺序也需要注意一下

下面是两个偏移的sld文件

1、设置偏移 0.08

<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
    <sld:UserLayer>
        <sld:LayerFeatureConstraints>
            <sld:FeatureTypeConstraint/>
        </sld:LayerFeatureConstraints>
        <sld:UserStyle>
            <sld:Name>Default Styler</sld:Name>
            <sld:FeatureTypeStyle>
                <sld:Name>group0</sld:Name>
                <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
                <sld:Rule>
                    <sld:Name>default rule</sld:Name>
                    <sld:PolygonSymbolizer>
                        <sld:Geometry>
                            <ogc:Function name="isometric">
                                <ogc:PropertyName>the_geom</ogc:PropertyName>
                                <ogc:Literal>0.08</ogc:Literal>
                            </ogc:Function>
                        </sld:Geometry>
                        <sld:Fill>
                            <sld:CssParameter name="fill">#001E39</sld:CssParameter>
                            <sld:CssParameter name="fill-opacity">0.61</sld:CssParameter>
                        </sld:Fill>
                       
                    </sld:PolygonSymbolizer>
                    <sld:PolygonSymbolizer>
                        <sld:Geometry>
                            <ogc:Function name="offset">
                                <ogc:PropertyName>the_geom</ogc:PropertyName>
                                <ogc:Literal>0</ogc:Literal>
                                <ogc:Literal>-0.08</ogc:Literal>
                            </ogc:Function>
                        </sld:Geometry>
                        <sld:Fill>
                            <sld:CssParameter name="fill">#001E39</sld:CssParameter>
                        </sld:Fill><Stroke>
          <CssParameter name="stroke">#4B96B6</CssParameter>
          <CssParameter name="stroke-width">0.5</CssParameter>
        </Stroke>
                    </sld:PolygonSymbolizer>
                </sld:Rule>
            </sld:FeatureTypeStyle>
        </sld:UserStyle>
    </sld:UserLayer>
</sld:StyledLayerDescriptor>

 第二个样式:设置偏移 0.16

<?xml version="1.0" encoding="UTF-8"?><sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
    <sld:UserLayer>
        <sld:LayerFeatureConstraints>
            <sld:FeatureTypeConstraint/>
        </sld:LayerFeatureConstraints>
        <sld:UserStyle>
            <sld:Name>Default Styler</sld:Name>
            <sld:FeatureTypeStyle>
                <sld:Name>group0</sld:Name>
                <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
                <sld:Rule>
                    <sld:Name>default rule</sld:Name>
                    <sld:PolygonSymbolizer>
                        <sld:Geometry>
                            <ogc:Function name="isometric">
                                <ogc:PropertyName>the_geom</ogc:PropertyName>
                                <ogc:Literal>0.16</ogc:Literal>
                            </ogc:Function>
                        </sld:Geometry>
                        <sld:Fill>
                            <sld:CssParameter name="fill">#001E39</sld:CssParameter>
                            <sld:CssParameter name="fill-opacity">0.61</sld:CssParameter>
                        </sld:Fill>
                       
                    </sld:PolygonSymbolizer>
                    <sld:PolygonSymbolizer>
                        <sld:Geometry>
                            <ogc:Function name="offset">
                                <ogc:PropertyName>the_geom</ogc:PropertyName>
                                <ogc:Literal>0</ogc:Literal>
                                <ogc:Literal>-0.16</ogc:Literal>
                            </ogc:Function>
                        </sld:Geometry>
                        <sld:Fill>
                            <sld:CssParameter name="fill">#001E39</sld:CssParameter>
                        </sld:Fill><Stroke>
          <CssParameter name="stroke">#4B96B6</CssParameter>
          <CssParameter name="stroke-width">0.5</CssParameter>
        </Stroke>
                    </sld:PolygonSymbolizer>
                </sld:Rule>
            </sld:FeatureTypeStyle>
        </sld:UserStyle>
    </sld:UserLayer>
</sld:StyledLayerDescriptor>

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装和配置GeoServer需要以下步骤: 1. 下载GeoServer:首先,你需要从GeoServer官方网站下载适用于你的操作系统的安装包。 2. 安装GeoServer:解压下载的安装包,并按照安装向导的指示进行安装。 3. 配置GeoServer数据文件存储路径:在安装过程中,你可以选择更改GeoServer数据文件的默认存储路径。如果你不需要更改,默认设置就可以使用。 4. 启动GeoServer服务器:安装完成后,在浏览器中输入http://localhost:8080/geoserver/web/,GeoServer服务器将会自动启动成功。 通过以上步骤,你就可以成功安装和配置GeoServer了。请注意,GeoServer支持多种格式的发布,如WFS、WMS、WCS、WMTS等,可以根据需要进行配置和使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [GeoServer入门(一):介绍、配置与安装(Java环境配置、Tomcat安装部署)](https://blog.csdn.net/Sw1zzle/article/details/124726304)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [GeoServer安装配置](https://blog.csdn.net/weixin_30885111/article/details/96616211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值