Geoserver使用(V2.15.0)

本文介绍如何利用GeoServer的REST API进行图层管理,包括获取图层列表、图层组信息及地理JSON数据,同时探讨了WFS查询方法。此外,还深入讲解了在CSS中使用算数运算符的技巧,以及如何通过CSS实现带箭头的线标注和强制显示全部文本标注。
摘要由CSDN通过智能技术生成

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
  • 按缩放级别显示不同图层
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值