接上一部分,我们可以用Filter来区分多个Rule,SLD除了可以设置要素厚度和颜色外,还可以用圆形、方形、自定义的图片图形或文字等设置Point,LineString可以渲染成各种线条等,Polygon可以填充自定义的平铺图像,将要素渲染成不同的风格。
  • 注记显示
TextSymolizer注记符号可以和PolygonSymbolizer、LineSymbolizer、PointSymbolizer在同一Rule下,下面是一个注记SLD:
<?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>vf</sld:Name><sld:FeatureTypeStyle><sld:Name>name</sld:Name><sld:Rule><sld:Name>rule 1</sld:Name><sld:LineSymbolizer><sld:Geometry><ogc:PropertyName>the_geom</ogc:PropertyName></sld:Geometry><sld:Stroke><sld:CssParameter name="stroke">#00FF00</sld:CssParameter><sld:CssParameter name="stroke-width">2.0</sld:CssParameter></sld:Stroke></sld:LineSymbolizer><sld:TextSymbolizer><sld:Geometry><ogc:Function name="centroid"><ogc:PropertyName>the_geom</ogc:PropertyName></ogc:Function></sld:Geometry><sld:Label>中国</sld:Label><sld:Font><sld:CssParameter name="font-family">宋体</sld:CssParameter><sld:CssParameter name="font-size">22</sld:CssParameter><sld:CssParameter name="font-style">Regular</sld:CssParameter><sld:CssParameter name="font-weight">normal</sld:CssParameter></sld:Font><sld:LabelPlacement><sld:PointPlacement><sld:AnchorPoint><sld:AnchorPointX>0.0</sld:AnchorPointX><sld:AnchorPointY>0.0</sld:AnchorPointY></sld:AnchorPoint><sld:Displacement><sld:DisplacementX>0.0</sld:DisplacementX><sld:DisplacementY>0.0</sld:DisplacementY></sld:Displacement><sld:Rotation>-45</sld:Rotation></sld:PointPlacement></sld:LabelPlacement><sld:Halo><sld:Radius>5</sld:Radius><sld:Fill><sld:CssParameter name="fill">#F0F408</sld:CssParameter></sld:Fill></sld:Halo><sld:Fill><sld:CssParameter name="fill">#0551F5</sld:CssParameter></sld:Fill></sld:TextSymbolizer></sld:Rule></sld:FeatureTypeStyle></sld:UserStyle></sld:UserLayer>
</sld:StyledLayerDescriptor>

sf是StyleFactory实例,ff是FilterFactory2 实例,我们以LineString为例创建样式。

首先创建TextSymbolizer:

TextSymbolizer textSymbolizer = sf.createTextSymbolizer();

设置字体样式:

Fill textFill = sf.createFill(ff.literal(Color.decode("#0551F5")),ff.literal(0.5));  //颜色 不透明度
Font font = sf.createFont(ff.literal("宋体"),ff.literal("Regular"),ff.literal("normal"),ff.literal(22));

字体边缘:

Halo halo = sf.createHalo(sf.createFill(ff.literal(Color.decode("#F0F408"))),ff.literal(5));

注记文字可以设置字段属性和固定文本:

Expression exp = ff.literal("中国");  //显示固定文本
// Expression exp = ff.property("Name");  //Name字段

设置注记锚点、偏移和旋转:

AnchorPoint anchorPoint = sf.createAnchorPoint(ff.literal(0.0),ff.literal(0.0));
Displacement displacement = sf.createDisplacement(ff.literal(0.0),ff.literal(0.0));
Expression rotation = ff.literal(-45);  //旋转-45度
LabelPlacement placement = sf.createPointPlacement(anchorPoint,displacement,rotation);  //这里没用sf.createLinePlacement(...)

将信息加入textSymbolizer:

textSymbolizer.setFont(font);
textSymbolizer.setFill(textFill);
textSymbolizer.setLabel(exp);
textSymbolizer.setHalo(halo);
textSymbolizer.setLabelPlacement(placement);

最后将textSymbolizer添加到Rule:

rule.symbolizers().add(textSymbolizer);  //规则rule
  • WMS预览:

另外,还可以有分级显示等其他与注记美观的设置。所有上述代码,很轻松就可以实现各种形式的SLD样式,只要定义一种前台传来JSON格式,后台就可以实现样式的生成,web端图层样式设置就方便很多。

利用geotools生成点线面和注记的sld样式(二)相关推荐

  1. Udig注记符号制作--朝阳二维路名

    uDig配图与GeoServer添加Style 软件介绍:         uDig是一个开源的桌面GIS软件,可以进行shp与栅格数据地图文件的编辑和查看,对OpenGIS标准,关于互联网GIS.网 ...

  2. 城市道路注记抽稀方法探讨

    原文发布时间:2011-08-29 09:50:12 昆明市测绘研究院信息中心李宁 前言 单位刚刚完成整个城市的建筑物道路,有幸担任整个项目数据的内业处理技术负责,在整个项目过程中,结合FME和Arc ...

  3. ArcGIS中利用DEM数据生成地形图既视感的等高线;利用掩膜进行等高线注记;DEM的可视化表达总结

    文章目录 前言 一.效果图展示 二.地形(DEM)可视化表达 1.一维可视化 2.二维可视化 3.三维可视化 二.ArcGIS中利用DEM数据制作等高线 1.DEM数据下载 2.镶嵌 3.提取出需要的 ...

  4. Oday安全 12.3.1Ret2Libc实战之利用ZwSetInformationProcess一节注记(下)

    在前一篇<Oday安全 12.3.1Ret2Libc实战之利用ZwSetInformationProcess>一节注记(上) 的末尾部分,我们遇到访问无效内存的异常,本篇将讨论如何解决这个 ...

  5. eps高程点和高程注记不符_利用AutoCAD二次开发实现地形图高程点与等高线错误自动查找...

    原标题:利用AutoCAD二次开发实现地形图高程点与等高线错误自动查找 水土保持之点滴,关注后可查阅所有文章 来源:<测绘通报>2017年第5期 作者:刘洪.黄军胜 摘要:论述了数字地形图 ...

  6. openlayer xyz加载_webGIS实践:3_1_openlayer展绘点线面注记

    上一篇已经讲了,怎么加载瓦片地图. 这篇就看看怎么简单的渲染矢量点线面数据. 最简单的,绘制点线面注记. 效果长这样: 新建一个文件FeatureOL.HTML. 代码如下: <!DOCTYPE ...

  7. 利用ArcGIS创建注记层制作方法及注意事项

    最近做项目的过程中地图名称显示总是不太理想,目前地图名称显示采用的是动态标注,动态标注在大比例尺下容易造成遮盖,小比例尺下名称显示又太小.最后学习.参考了网上多种方法,决定部分小比例尺下采用注记层显示 ...

  8. Oday安全 11.5利用未启用SafeSEH模块绕过SafeSEH一节注记

    Oday安全一书的内容越往后越深奥,不得不做些注记备忘. 1.书P297 插图11.5.6写道__except函数地址根据EBP-4的值得出.这是目前为止,书中写的最含糊的地方,需要展开讨论一下.参考 ...

  9. Oday安全 12.3.1Ret2Libc实战之利用ZwSetInformationProcess一节注记(上)

    0day安全这书越到后面越难,哎...先记录一下看书过程中的注记,便于后面理解. 书中以绕过ntdll!LdrpCheckNXCompatibility:ntdll!LdrpCheckNXCompat ...

最新文章

  1. Python 2x 中list 里面的中文打印效果乱码
  2. Kubernetes 1.14 版本发布:正式支持Windows 节点,持久化本地卷进入GA
  3. 《Adobe Flash Professional CC经典教程》——1.3 使用“库”面板
  4. python 函数复习
  5. Hyperopt中文文档:Cite引用
  6. TensorRT学习笔记7 - 保存与读取序列化的结果
  7. QT的QQuickStyle类的使用
  8. java发生fullgc的时机_2021-01-02:java中,MinorGC、MajorGC、FullGC 什么时候发生?
  9. Dr Robot 2015.6—7月
  10. Find Minimum in Rotated Sorted Array leetcode java
  11. decode函数_「实践」云函数 + API,你也可以做个天气信息系统
  12. vim 编辑二进制文件
  13. VISIO使用FPGA时序图、状态机等所需的模具
  14. Uiautomator 2.0之BySelector类学习小记
  15. 如何准备国家公务员考试
  16. [英语竞赛] 知识整理
  17. An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
  18. php实时股票,php股票数据分析源码
  19. ajax mvc 服务器 怎么设置,ajax mvc 服务器 怎么设置
  20. 《Python How to Program》读书笔记

热门文章

  1. oppo云服务器网站,开启OPPO云服务 个人数据轻松管理
  2. java二维数组的创建,java二维数组创建方法
  3. git生成patch和打patch
  4. 售前工程师——Saas系统
  5. 哪一位科学家建立了现代计算机的结构理论,考试D卷
  6. java word添加图片_JAVA编辑WORD文件插入图片
  7. No instances available for [user-service] with root cause(Ribbon负载均衡)
  8. Ubuntu numpy 源码下载
  9. Centos7配置TiDB集群
  10. mysql 查看网络流量,linux 查看 CPU,内存,网络流量和磁盘 I/O