利用geotools生成点线面和注记的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样式(二)相关推荐
- Udig注记符号制作--朝阳二维路名
uDig配图与GeoServer添加Style 软件介绍: uDig是一个开源的桌面GIS软件,可以进行shp与栅格数据地图文件的编辑和查看,对OpenGIS标准,关于互联网GIS.网 ...
- 城市道路注记抽稀方法探讨
原文发布时间:2011-08-29 09:50:12 昆明市测绘研究院信息中心李宁 前言 单位刚刚完成整个城市的建筑物道路,有幸担任整个项目数据的内业处理技术负责,在整个项目过程中,结合FME和Arc ...
- ArcGIS中利用DEM数据生成地形图既视感的等高线;利用掩膜进行等高线注记;DEM的可视化表达总结
文章目录 前言 一.效果图展示 二.地形(DEM)可视化表达 1.一维可视化 2.二维可视化 3.三维可视化 二.ArcGIS中利用DEM数据制作等高线 1.DEM数据下载 2.镶嵌 3.提取出需要的 ...
- Oday安全 12.3.1Ret2Libc实战之利用ZwSetInformationProcess一节注记(下)
在前一篇<Oday安全 12.3.1Ret2Libc实战之利用ZwSetInformationProcess>一节注记(上) 的末尾部分,我们遇到访问无效内存的异常,本篇将讨论如何解决这个 ...
- eps高程点和高程注记不符_利用AutoCAD二次开发实现地形图高程点与等高线错误自动查找...
原标题:利用AutoCAD二次开发实现地形图高程点与等高线错误自动查找 水土保持之点滴,关注后可查阅所有文章 来源:<测绘通报>2017年第5期 作者:刘洪.黄军胜 摘要:论述了数字地形图 ...
- openlayer xyz加载_webGIS实践:3_1_openlayer展绘点线面注记
上一篇已经讲了,怎么加载瓦片地图. 这篇就看看怎么简单的渲染矢量点线面数据. 最简单的,绘制点线面注记. 效果长这样: 新建一个文件FeatureOL.HTML. 代码如下: <!DOCTYPE ...
- 利用ArcGIS创建注记层制作方法及注意事项
最近做项目的过程中地图名称显示总是不太理想,目前地图名称显示采用的是动态标注,动态标注在大比例尺下容易造成遮盖,小比例尺下名称显示又太小.最后学习.参考了网上多种方法,决定部分小比例尺下采用注记层显示 ...
- Oday安全 11.5利用未启用SafeSEH模块绕过SafeSEH一节注记
Oday安全一书的内容越往后越深奥,不得不做些注记备忘. 1.书P297 插图11.5.6写道__except函数地址根据EBP-4的值得出.这是目前为止,书中写的最含糊的地方,需要展开讨论一下.参考 ...
- Oday安全 12.3.1Ret2Libc实战之利用ZwSetInformationProcess一节注记(上)
0day安全这书越到后面越难,哎...先记录一下看书过程中的注记,便于后面理解. 书中以绕过ntdll!LdrpCheckNXCompatibility:ntdll!LdrpCheckNXCompat ...
最新文章
- Python 2x 中list 里面的中文打印效果乱码
- Kubernetes 1.14 版本发布:正式支持Windows 节点,持久化本地卷进入GA
- 《Adobe Flash Professional CC经典教程》——1.3 使用“库”面板
- python 函数复习
- Hyperopt中文文档:Cite引用
- TensorRT学习笔记7 - 保存与读取序列化的结果
- QT的QQuickStyle类的使用
- java发生fullgc的时机_2021-01-02:java中,MinorGC、MajorGC、FullGC 什么时候发生?
- Dr Robot 2015.6—7月
- Find Minimum in Rotated Sorted Array leetcode java
- decode函数_「实践」云函数 + API,你也可以做个天气信息系统
- vim 编辑二进制文件
- VISIO使用FPGA时序图、状态机等所需的模具
- Uiautomator 2.0之BySelector类学习小记
- 如何准备国家公务员考试
- [英语竞赛] 知识整理
- An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
- php实时股票,php股票数据分析源码
- ajax mvc 服务器 怎么设置,ajax mvc 服务器 怎么设置
- 《Python How to Program》读书笔记
热门文章
- oppo云服务器网站,开启OPPO云服务 个人数据轻松管理
- java二维数组的创建,java二维数组创建方法
- git生成patch和打patch
- 售前工程师——Saas系统
- 哪一位科学家建立了现代计算机的结构理论,考试D卷
- java word添加图片_JAVA编辑WORD文件插入图片
- No instances available for [user-service] with root cause(Ribbon负载均衡)
- Ubuntu numpy 源码下载
- Centos7配置TiDB集群
- mysql 查看网络流量,linux 查看 CPU,内存,网络流量和磁盘 I/O