昨天GIS群里谈论到在GeoServer中创建google 、百度地图中的伪三维建筑物如:

几番搜索,geoserver中用SLD的isometric可以实现这种效果:

isometric geometry:Geometry,extrusion:Double Returns a multi-polygon containing the isometric extrusions of all segments part of the original geometry. The extrusion distance is extrusionand it’s assume to be expressed in the same unit as the geometry coordinates. Can be used to get a cheap pseudo-3d map effect

具体的SLD文件为如下

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0"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"xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"><NamedLayer><Name>alt-buildings</Name><UserStyle><FeatureTypeStyle><Rule><PolygonSymbolizer><Geometry><ogc:Function name="isometric"><ogc:PropertyName>geom</ogc:PropertyName><ogc:Literal>0.0001</ogc:Literal></ogc:Function></Geometry><Fill><CssParameter name="fill">#7B8F96</CssParameter><CssParameter name="fill-opacity">1</CssParameter></Fill></PolygonSymbolizer><PolygonSymbolizer><Geometry><ogc:Function name="offset"><ogc:PropertyName>geom</ogc:PropertyName><ogc:Literal>0</ogc:Literal><ogc:Literal>0.0001</ogc:Literal></ogc:Function></Geometry><Fill><CssParameter name="fill">#BAD8E2</CssParameter><CssParameter name="fill-opacity">1</CssParameter></Fill></PolygonSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer>
</StyledLayerDescriptor>

效果:

这种情况下所有的建筑物的高度都是一样的 如果要实现高度不等具体操作如下:

首先我的数据是从OpenStreetMap下载的并存到了PostGis数据库

然后添加一个height字段默认值都为0.0001 并把上图最中间的那个半圆形建筑物的height改为0.0002

然后修改sld文件把

<ogc:Literal>0.0001</ogc:Literal>替换为<ogc:PropertyName>height</ogc:PropertyName>
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0"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"xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"><NamedLayer><Name>alt-buildings</Name><UserStyle><FeatureTypeStyle><Rule><PolygonSymbolizer><Geometry><ogc:Function name="isometric"><ogc:PropertyName>geom</ogc:PropertyName>  <ogc:PropertyName>height</ogc:PropertyName></ogc:Function></Geometry><Fill><CssParameter name="fill">#7B8F96</CssParameter><CssParameter name="fill-opacity">1</CssParameter></Fill></PolygonSymbolizer><PolygonSymbolizer><Geometry><ogc:Function name="offset"><ogc:PropertyName>geom</ogc:PropertyName><ogc:Literal>0</ogc:Literal> <ogc:PropertyName>height</ogc:PropertyName></ogc:Function></Geometry><Fill><CssParameter name="fill">#BAD8E2</CssParameter><CssParameter name="fill-opacity">1</CssParameter></Fill></PolygonSymbolizer></Rule></FeatureTypeStyle></UserStyle></NamedLayer>
</StyledLayerDescriptor>

效果如下:

分类: GeoServer

转载于:https://www.cnblogs.com/zhoujq/archive/2013/04/11/3014376.html

SLD 样式 之GeoServer中设计2.5维建筑物相关推荐

  1. geoserver利用字符.tff文件制作sld样式

    转载自: https://blog.csdn.net/dcj_gis2006/article/details/11720173 Character Symbol (1) 最终效果: 第一步:制作ttf ...

  2. 修改图层样式(geoserver)

    背景 GeoServer支持自定义修改样式,但是默认情况下只能自己编写SLD代码,安装插件以后可以编写CSS代码来修改样式.不过这样子搞还是很麻烦,因此想找到更便捷的方法来修改图层样式. 生成SLD文 ...

  3. 利用geotools生成点线面和注记的sld样式(二)

    接上一部分,我们可以用Filter来区分多个Rule,SLD除了可以设置要素厚度和颜色外,还可以用圆形.方形.自定义的图片图形或文字等设置Point,LineString可以渲染成各种线条等,Poly ...

  4. udig设置样式在Geoserver使用出现汉字乱码问题

    -udig设置样式在Geoserver使用出现汉字乱码问题 1.软件环境:使用系统为win10企业版,uDig为1.5版本,geoserver为2.8.3版本. 2.使用发现问题:使用uDig制作的样 ...

  5. geoserver地图发布服务教程---4.使用udig获取sld样式

    上一篇也说了,样式主要还是考sld代码来实现的,但是学习代码是需要时间成本滴,那么不想学或者来不及去学习sld语法的同学们,这里就有现成的软件推荐给大家,来实现现成的代码咯.其实qigs和arcgis ...

  6. qgis编辑sld中文标注样式导入Geoserver中文字体乱码

    出现的问题 原因 shp文件在qgis中编辑字段样式为UTF-8,geoserver导入shp文件时并非UTF-8,需要设置为UTF-8 更改后保存,乱码文字显示正常

  7. aspx 修改了样式但是在点击按钮后被刷新_geoserver地图发布服务教程---4.使用udig获取sld样式...

    上一篇也说了,样式主要还是考sld代码来实现的,但是学习代码是需要时间成本滴,那么不想学或者来不及去学习sld语法的同学们,这里就有现成的软件推荐给大家,来实现现成的代码咯.其实qigs和arcgis ...

  8. sld样式文件demo

    标注样式为: 代码为: <?xml version="1.0" encoding="UTF-8"?> <StyledLayerDescript ...

  9. 开源GIS解决方案,暨GeoServer+OpenLayer结合开发总结

    http://linking123.github.io/2018/07/21/%E5%BC%80%E6%BA%90GIS%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF% ...

  10. udig生成geoserver样式sld文件

    udig生成geoserver样式sld文件 通过shapefile文件修改图层样式,导出成SLD样式文件 借鉴:https://blog.csdn.net/liyuanxiang1984/artic ...

最新文章

  1. 软件测试之Selenium IDE
  2. qt ui指针和本类对象_您需要了解的有关UI设计的形状和对象的所有信息
  3. 前端学习(2986):一文理解数据劫持4
  4. 微信Windows 3.3.0内测发布 可以刷朋友圈了
  5. 联想杨元庆:没必要做操作系统和芯片;华为Mate 20 Pro被迫退出安卓 Q Beta;GitHub推赚钱新利器 | 极客头条...
  6. Linux——学习篇(一)
  7. 毕业设计 - 题目 :基于大数据的疫情数据分析及可视化系统
  8. 迪信通机器人_未来已来,迪信通携手达闼科技共研智能零售机器人
  9. android react混合开发框架,7个混合式移动开发框架
  10. Mac安装wget流程及异常解决
  11. PBFT算法源码详解
  12. Mysql如何跨库查询数据?
  13. SaaS启动阶段增长指南(上)
  14. Android神器:Xposed框架
  15. 【释义详解】Software License (软件许可证)是什么?
  16. WINDY数----数位dp
  17. 网络基础 IP协议 子网划分 子网汇总 超网 无类间路由超详细介绍
  18. Unity Shader入门学习(5):基础屏幕后处理
  19. python扫雷总结与体会_扫雷拓展训练心得体会
  20. 如何购买和设置阿里云国际版的 Web 应用防火墙

热门文章

  1. 【数据库】Mean web开发 02-Windows下Mongodb安装配置及常用客户端管理工具
  2. [转载]git 设置第一次输入密码之后不用输入密码
  3. coderforces 731c
  4. kaggle之手写体识别
  5. jquery如何阻止子元素相应mouseout事件
  6. C#:Md5和Sha1两种加密方式
  7. Apache Hadoop 项目介绍
  8. SVN Attempted to lock an already-locked dir异常解决方法
  9. hdu 2527 Safe Or Unsafe
  10. SQL注入漏洞与参数化查询