当前位置:   article > 正文

如何利用Geoserver将矢量数据发布成伪3D服务_geoserver 3d

geoserver 3d

1.1、前言

        本篇文章需要的Geoserver环境,Geoserver的情况请参考博文Geoserver简介、Geoserver安装部署操作请参考博文Geoserver安装部署、Geoserver基本操作请参考博文Geoserver基本操作

1.2、伪3D服务效果图

        原始的二维矢量数据图如下:
图片1伪3D服务效果图如下:
图片2

1.3、数据准备

        发布伪3D服务需要矢量面数据,为了方便用户获取测试数据,这里提供测试数据的下载,下载地址。数据和样式文件详情具体如下:
图片3

1.4、基本原理

        实现伪3D效果,主要是视觉上实现其基本原理就是将矢量面在垂直方向上进行拉伸,再在水平方向进行偏移。Geoserver主要是利用sld样式文件支持的isometric和offset两个属性进行伪3D效果。具体如下:
图片4
        第一个参数the_geom是指空间数据类型的字段名称,也就是储存坐标串的字段名,在geoserver中发布矢量数据的时候能看到要素的属性字段,一般情况下空间数据类型的默认字段名称就是the_geom。
        第二个参数是指拉伸长度值单位与要素所在坐标系一致。
图片5
        第一个参数the_geom是指空间数据类型的字段名称,也就是储存坐标串的字段名,在geoserver中发布矢量数据的时候能看到要素的属性字段,一般情况下空间数据类型的默认字段名称就是the_geom。
        第二、三个参数是指垂直和水平方向上的拉伸长度值,但是单位与要素所在坐标系一致。

1.5、完整的样式文件

  • 样式文件1
<?xml version="1.0" encoding="ISO-8859-1"?>  
<StyledLayerDescriptor version="1.0.0"   
    xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"   
    xmlns="http://www.opengis.net/sld"   
    xmlns:ogc="http://www.opengis.net/ogc"   
    xmlns:xlink="http://www.w3.org/1999/xlink"   
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <NamedLayer>  
        <Name>buildings25</Name>  
        <UserStyle>  
            <Title>buildings25</Title>  
            <Abstract>buildings25</Abstract>  
            <FeatureTypeStyle>  
                <Rule>  
                    <PolygonSymbolizer>  
                        <Geometry>  
                            <ogc:Function name="isometric">  
                                <ogc:PropertyName>the_geom</ogc:PropertyName>  
                                <ogc:Literal>0.0001</ogc:Literal>  
                            </ogc:Function>  
                        </Geometry>  
                        <Fill>  
                            <CssParameter name="fill">#828282</CssParameter>  
                        </Fill>  
                        <Stroke>  
                            <CssParameter name="stroke">#828282</CssParameter>  
                            <CssParameter name="stroke-width">0.1</CssParameter>  
                        </Stroke>  
                    </PolygonSymbolizer>  
                </Rule>  
            </FeatureTypeStyle>  
            <FeatureTypeStyle>  
                <Rule>  
                    <PolygonSymbolizer>  
                        <Geometry>  
                            <ogc:Function name="offset">  
                                <ogc:PropertyName>the_geom</ogc:PropertyName>  
                                <ogc:Literal>0</ogc:Literal>  
                                <ogc:Literal>0.0001</ogc:Literal>  
                            </ogc:Function>  
                        </Geometry>  
                        <Fill>  
                            <CssParameter name="fill">#DADADA</CssParameter>  
                        </Fill>  
                        <Stroke>  
                            <CssParameter name="stroke">#DADADA</CssParameter>  
                            <CssParameter name="stroke-width">0.1</CssParameter>  
                        </Stroke>  
                    </PolygonSymbolizer>  
                </Rule>  
            </FeatureTypeStyle>  
        </UserStyle>  
    </NamedLayer>  
</StyledLayerDescriptor>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 样式文件2
<?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>js25</sld:Name>
            <sld:FeatureTypeStyle>
                <sld:Name>js25</sld:Name>
                <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
                <sld:Rule>
                    <sld:Name>js25</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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

1.6、Geoserver中的操作

        Geoserver的操作步骤见文章中前言部分中提到的博文,操作步骤如下:

  • 第一步:拷贝数据到Geoserver的数据目录下;
  • 第二步:新建工作空间;
  • 第三步:新建数据存储;
  • 第四步:新建图层数据;
  • 第五步:上传样式文件;
  • 第六步:发布图层服务;
  • 第七步:预览图层服务;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/834678
推荐阅读
相关标签
  

闽ICP备14008679号