文章目錄
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
- 按縮放級別顯示不同圖層