首页 > 其他分享 >二维下,行政区划借助 geoserver样式配置,实现伪3d效果

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

时间:2023-04-28 14:03:51浏览次数:47  
标签:拉伸 0.08 offset 001E39 偏移量 二维 geom geoserver 3d


最终效果图如下:

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

配置中关注一下内容:

   主要是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>

标签:拉伸,0.08,offset,001E39,偏移量,二维,geom,geoserver,3d
From: https://blog.51cto.com/u_15983333/6234010

相关文章

  • 第六届河南省赛 zzulioj 1484: 探 寻 宝 藏 (二维双线DP)nyoj 712
    1484:探寻宝藏TimeLimit: 1Sec  MemoryLimit: 128MBSubmit: 76  Solved: 37SubmitStatusWebBoardDescription传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物。某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处处有宝物,最珍贵的宝物就藏在右下角,迷......
  • highchart 生成一个3d的柱状图
    highchart生成一个光秃秃的柱状图Highcharts.chart('container',{chart:{type:'column',margin:0,options3d:{enabled:true,alpha:15,//控制x轴角度beta:15,//控制y轴角度depth:50,//柱子深度viewDistance......
  • 软件杯3D智慧医疗记录1
    2023年4月27日前台搭建框架图  服务器本地已连接可插入框架 展示平台正在连接到本地 问题:yarninstall卡死localhost拒绝连接 ......
  • 前端生成二维码及把页面转为图片保存到本地
    前端生成二维码及把页面转为图片保存到本地Bayi·于2021-12-2317:08:37发布847收藏3文章标签:前端javascript生成二维码页面转图片vue版权以vue项目为例,其他类型项目其实也是一样的所需components:QRCodehtml2canvasnpminstallqrcodejs2--savenpm......
  • vue 前端生成二维码,并转换为图片
    vue前端生成二维码,并转换为图片~牧马~于2021-05-2715:08:03发布2760收藏7分类专栏:vue文章标签:vue生成二维码自动生成的二维码转图片版权这篇文章主要是分享下自己的收获,也是自己遇到的问题:前端如何自己生成二维码?前端如何将生成的二维码转成图片并展示?......
  • php 二维数组重组成父与子关系
    functionbuildTree(array$flat,$pidKey='pid',$idKey='id',$childrenKey='children'){$grouped=[];foreach($flatas$sub){$grouped[$sub[$pidKey]][]=$sub;}$fnBuilder......
  • 2022-04-26:给定一个数组componets,长度为A, componets[i] = j,代表i类型的任务需要耗时j
    2022-04-26:给定一个数组componets,长度为A,componets[i]=j,代表i类型的任务需要耗时j给定一个二维数组orders,长度为M,orders[i][0]代表i号订单下单时间orders[i][1]代表i号订单是哪种类型的任务,毫无疑问orders[i][1]<A一开始所有流水线都在0时刻待命,给定一个正数nums,表示流水......
  • 每日打卡一维数组和二维数组传参的几种方式
    //一组数组传参//#include<stdio.h> //voidInputArray(intn[],inta);//voidOutputArray(intn[],inta);//intmain()//{// intm[3];// InputArray(m,3);// OutputArray(m,3);// return0;//}//voidInputArray(intm[],intn)//{// for(inti=0;i<n;i++)......
  • 机器学习(七):梯度下降解决分类问题——perceptron感知机算法与SVM支持向量机算法进行二
    实验2感知机算法与支持向量机算法一、预备知识1.感知机算法二、实验目的掌握感知机算法的原理及设计;掌握利用感知机算法解决分类问题。三、实验内容设计感知机算法求解,设计SVM算法求解(可调用函数库),请找出支持向量和决策超平面。四、操作方法和实验步骤1.......
  • Geoserver使用rest接口发布图层
    Geoserver提供一系列rest接口,发布图层也可以通过rest接口进行图层发布接口post请求/rest/workspaces/{workspaceName}/datastores/{storeName}/featuretypes请求参数(主要参数)参数类型描述必填workspaceNamestring工作空间truestoreNamestring储存仓库t......