Geoserver使用(V2.15.0)

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
  • 按縮放級別顯示不同圖層
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章