当前位置:   article > 正文

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

geoserver实现3d效果

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

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

最终效果图如下:

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

配置中关注一下内容:

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

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

 然后设置 offset偏移量

  1. <PolygonSymbolizer>
  2.         <Geometry>
  3.           <ogc:Function name="offset">
  4.             <ogc:PropertyName>the_geom</ogc:PropertyName>
  5.             <ogc:Literal>0</ogc:Literal>
  6.             <ogc:Literal>150</ogc:Literal>
  7.           
  8.           </ogc:Function>
  9.         </Geometry>
  10.         <Fill>
  11.           <CssParameter name="fill">#BAD8E2</CssParameter>
  12.           <CssParameter name="fill-opacity">1</CssParameter>
  13.         </Fill>
  14.     
  15. </PolygonSymbolizer>
  16. /*
  17.     这里都是固定的拉伸值和偏移量,在实际应用中可以借助地理要的字段进行要素的拉伸,将
  18.     <ogc:Literal>的属性换成<ogc:PropertyName>height</ogc:PropertyName>height是指字段名
  19. */

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

  1. <code> <ogc:Literal>0</ogc:Literal>
  2. <ogc:Literal>0.08</ogc:Literal> </code>

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

上面效果图实现:

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

下面是两个偏移的sld文件

1、设置偏移 0.08

  1. <?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">
  2. <sld:UserLayer>
  3. <sld:LayerFeatureConstraints>
  4. <sld:FeatureTypeConstraint/>
  5. </sld:LayerFeatureConstraints>
  6. <sld:UserStyle>
  7. <sld:Name>Default Styler</sld:Name>
  8. <sld:FeatureTypeStyle>
  9. <sld:Name>group0</sld:Name>
  10. <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
  11. <sld:Rule>
  12. <sld:Name>default rule</sld:Name>
  13. <sld:PolygonSymbolizer>
  14. <sld:Geometry>
  15. <ogc:Function name="isometric">
  16. <ogc:PropertyName>the_geom</ogc:PropertyName>
  17. <ogc:Literal>0.08</ogc:Literal>
  18. </ogc:Function>
  19. </sld:Geometry>
  20. <sld:Fill>
  21. <sld:CssParameter name="fill">#001E39</sld:CssParameter>
  22. <sld:CssParameter name="fill-opacity">0.61</sld:CssParameter>
  23. </sld:Fill>
  24. </sld:PolygonSymbolizer>
  25. <sld:PolygonSymbolizer>
  26. <sld:Geometry>
  27. <ogc:Function name="offset">
  28. <ogc:PropertyName>the_geom</ogc:PropertyName>
  29. <ogc:Literal>0</ogc:Literal>
  30. <ogc:Literal>-0.08</ogc:Literal>
  31. </ogc:Function>
  32. </sld:Geometry>
  33. <sld:Fill>
  34. <sld:CssParameter name="fill">#001E39</sld:CssParameter>
  35. </sld:Fill><Stroke>
  36. <CssParameter name="stroke">#4B96B6</CssParameter>
  37. <CssParameter name="stroke-width">0.5</CssParameter>
  38. </Stroke>
  39. </sld:PolygonSymbolizer>
  40. </sld:Rule>
  41. </sld:FeatureTypeStyle>
  42. </sld:UserStyle>
  43. </sld:UserLayer>
  44. </sld:StyledLayerDescriptor>

 第二个样式:设置偏移 0.16

  1. <?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">
  2. <sld:UserLayer>
  3. <sld:LayerFeatureConstraints>
  4. <sld:FeatureTypeConstraint/>
  5. </sld:LayerFeatureConstraints>
  6. <sld:UserStyle>
  7. <sld:Name>Default Styler</sld:Name>
  8. <sld:FeatureTypeStyle>
  9. <sld:Name>group0</sld:Name>
  10. <sld:FeatureTypeName>Feature</sld:FeatureTypeName>
  11. <sld:Rule>
  12. <sld:Name>default rule</sld:Name>
  13. <sld:PolygonSymbolizer>
  14. <sld:Geometry>
  15. <ogc:Function name="isometric">
  16. <ogc:PropertyName>the_geom</ogc:PropertyName>
  17. <ogc:Literal>0.16</ogc:Literal>
  18. </ogc:Function>
  19. </sld:Geometry>
  20. <sld:Fill>
  21. <sld:CssParameter name="fill">#001E39</sld:CssParameter>
  22. <sld:CssParameter name="fill-opacity">0.61</sld:CssParameter>
  23. </sld:Fill>
  24. </sld:PolygonSymbolizer>
  25. <sld:PolygonSymbolizer>
  26. <sld:Geometry>
  27. <ogc:Function name="offset">
  28. <ogc:PropertyName>the_geom</ogc:PropertyName>
  29. <ogc:Literal>0</ogc:Literal>
  30. <ogc:Literal>-0.16</ogc:Literal>
  31. </ogc:Function>
  32. </sld:Geometry>
  33. <sld:Fill>
  34. <sld:CssParameter name="fill">#001E39</sld:CssParameter>
  35. </sld:Fill><Stroke>
  36. <CssParameter name="stroke">#4B96B6</CssParameter>
  37. <CssParameter name="stroke-width">0.5</CssParameter>
  38. </Stroke>
  39. </sld:PolygonSymbolizer>
  40. </sld:Rule>
  41. </sld:FeatureTypeStyle>
  42. </sld:UserStyle>
  43. </sld:UserLayer>
  44. </sld:StyledLayerDescriptor>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/834671
推荐阅读
相关标签
  

闽ICP备14008679号