geoserver在发布矢量地图的时候我们经常对于标号的地图来说,我们想要设置与高德百度地图类似的样式,这个时候我们就要做一个背景衬图,然后将其与矢量数据中需要显示的字段就行绑定,这个时候就能够完成一个专题图的制作、详细步骤如下所示:
效果如下三个阶段:
(1)道路预备出阶段:
(2)道路实出现阶段:
(3):道路标号出现阶段:
分为这三个阶段,每个阶段将对应三段不同的代码:
全部代码如下:
feature-styles:
- name: name
rules:
- title: 道路线预备线
scale: [17000000,20000000]
symbolizers:
- line:
stroke-color: '#d76d03'
stroke-width: 0.1
- title: 道路线
scale: [10,17000000]
symbolizers:
- line:
stroke-color: '#d76d03'
stroke-width: 2
- line:
stroke-color: '#f7810b'
stroke-width: 1.89
- title: 道路注记
scale: [10,1700000]
symbolizers:
- text:
label: ${RN}
anchor: [0.5, 0.5]
fill-color: "#ffffff"
font-family: SansSerif
font-weight: bold
font-size: 8
x-graphic-resize: stretch
x-graphic-margin: 6
graphic:
symbols:
- external:
url: 国家级高速公路3.png #这个图片需要在图标下选择insert image
format: image/png
解释这段代码:
首先第一段(道路预备出阶段):
- title: 道路线预备线 标题名称
scale: [17000000,20000000] 此样式出现的比例尺范围
symbolizers: 规则详细
- line: 线要素
stroke-color: '#d76d03' 线的颜色
stroke-width: 0.1 线的宽度
第二段(道路实出现阶段):
- title: 道路线 图层名称
scale: [10,17000000] 图层可见比例尺范围
symbolizers: 规则详细
- line: 线的底层
stroke-color: '#d76d03'
stroke-width: 2
- line:
stroke-color: '#f7810b' 线的第二层
stroke-width: 1.89
在geoserver使用yaml语言时候symbolizes遵循叠加原则,一个样式顺序越往后则在图层上显示的层级越靠上,所以有很多地图样式我们都会利用这一规则,这一点和ps的图层概念是一样的。
第三段(道路标号出现):
- title: 道路注记
scale: [10,1700000]
symbolizers:
- text: 类型为文本类型
label: ${RN} 对于显示的字段的矢量数据中的字段名称
anchor: [0.5, 0.5] 定义的锚点,也就是中心
fill-color: "#ffffff" 字体的颜色
font-family: SansSerif 字体的类型
font-weight: bold 文本的粗心类型 bold为加粗
font-size: 8
x-graphic-resize: stretch 控制缩放类型
x-graphic-margin: 6 间距大小,以像素为单位
graphic: 标牌点的规则
symbols:
- external:
url: 国家级高速公路3.png #这个图片需要在图标下选择insert image 连接
format: image/png 底衬的类型
在这一点要注意,url的名称是在geoserver的样式地图的代码编辑器中上传背景图之后所生成的,是否上传成功是在geoserver文件夹中能够看到所上传的图片,如下所示:
点击之后出现如下所示:
点击选择文件之后,选择要使用的底衬底图片,点击之后就能在上方列表中看到要已经上传成功的底衬底图片的名称如下所示,
此时将光标放到url之后我们就能够直接点击上传好的衬图,点击确定即可确定衬图链接图片。
点击绑定地图数据后我们就能完成国家级高速公路专题图的制作。
类似高德地图衬图: