文章目录
1. REST
REST服务前缀
REST_PREFIX=http://IP:PORT/geoserver/rest/
REST服务参考API
/user/rest/api/index.html
获取所有图层列表
# rest方式
REST_PREFIX+workspaces/<ws>/layers.json
# 非rest方式
http://IP:PORT/geoserver/<ws>/ows?service=wfs&version=1.0.0&request=DescribeFeatureType&outputFormat=application/json
# ws——workspaces,工作区名称
获取所有图层组列表
# rest方式
REST_PREFIX+workspaces/<ws>/layergroups.json
# ws——workspaces,工作区名称
获取单个图层组所含图层信息
# rest方式
REST_PREFIX+workspaces/<ws>/layergroups/<lg>.json
# 非rest方式
http://IP:PORT/geoserver/wms?service=WMS&version=1.1.1&request=DescribeLayer&layers=<lg>&outputFormat=application/json
# ws——workspaces,工作区名称
# lg——图层组合名称
获取单个图层的geojson信息
# 非rest
http://IP:PORT/geoserver/<ws>/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=<ly>&outputFormat=application/json
# ws——workspaces,工作区名称
# ly——图层名称
WFS查询
# 查询点击位置处的feature
http://IP:PORT/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=ly1,ly2&outputFormat=application/json&CQL_FILTER=DWITHIN(the_geom,POINT (116.40291852 39.91586765),1,meters)
# DWITHIN,最后一个参数为单位,貌似未生效,只能以地图空间参考的单位为计算单位;typeName可以指定多个图层
# 查询bbox内的feature
http://IP:PORT/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typeName=ly1,ly2&outputFormat=application/json&bbox=116.36489385712949,39.96005933952984,116.36689385712949,39.96205933952984
# typeName可以指定多个图层;如果想实现类似点查询效果,以度为单位,则左下角与右上角差值可取:0.002,即以点击点坐标-0.001为左下角,点击点坐标+0.001为右
2. CSS
在CSS中使用算数运算符,需在中括号内部进行计算
* {
mark-size: [5+((10-SCALERANK)/3)];
font-fill: black;
font-family: "Arial";
font-size: 10;
label-anchor: 0.5 1;
label-offset: 0 [-12+SCALERANK];
halo-radius: 2;
halo-color: lightgray;
halo-opacity:0.7;
mark-label-obstacle: true;
label-max-displacement: 90;
label-priority: [0 - LABELRANK];
}
带箭头的线
# 在起点处增加箭头
{
stroke:#ff00ff;
mark:symbol(triangle);
:nth-mark(1) {
size: 32;
stroke: none;
fill:#ff00ff;
};
mark-rotation: [startAngle(the_geom)-90];
mark-geometry: startPoint([the_geom]);
}
# 两端增加箭头
{
stroke:#ffff00;
mark:symbol(triangle), symbol(triangle);
:nth-mark(1),:nth-mark(2) {
size: 20;
stroke: none;
fill:#ffff00;
};
mark-rotation: [endAngle(the_geom)-90],[startAngle(the_geom)-90];
mark-geometry:endPoint([the_geom]), startPoint([the_geom]);
}
标注——强制显示全部文本标注
# label与label之间的间隔
label-padding:-1;
# 强制显示存在重叠的标注,默认为true,即存在重叠时不显示标注
label-conflict-resolution:false;
# 当标注位置出现冲突时,可自动进行移动的距离范围,单位像素
label-max-displacement:100000;
# 标注显示的优先级即存在重叠时更优先显示,默认1000,值越小优先级越高,(没有感觉明显效果)
label-priority:1;
# 调整symbol的显示层级,值越大越显示在上面
z-index:1000;
- 标注——指定文本标注位置,避免重复显示
- 标注——增加文本标注背景色块
- 标注——linux下部署,标注乱码
- 标注——使用图片symbol
- 按缩放级别显示不同图层