需求:
基於sde中的矢量面數據發佈要素服務,如何實現在不停止要素服務的情況下在桌面端對面數據添加新的要素和屬性信息。
數據準備:
解決方法:
1、對sde中的要素圖層添加global id和啓用歸檔
2、file——share as——service
在彈出的服務編輯器頁面中勾選“feature access”選項
勾選“extract”、“sync”選項
填寫條目信息
點擊“分析”按鈕,提示沒有將sde註冊到server的警告,要素服務的話需要將sde註冊到server
在該條目上右鍵,選擇“Register data source with server”選項
指定一個名詞,然後點擊“ok”
在server下能看到註冊的數據庫
再次點擊“分析”按鈕,這時就沒有數據源註冊到server的提示了。
點擊發布按鈕。
發佈成功之後,可以在server上查看發佈成功的要素服務。
點擊要素服務中包含的圖層,例如:sde0414.sde.san
在ArcGIS Online Map Viewer查看要素服務中的圖層
查看的效果。這樣就能看到發佈成功的要素服務中的數據了。
3、更新要素服務
在arcmap中打開編輯器添加幾個要素,然後保存編輯
如果sde中的要素類不能編輯,請參考鏈接:https://blog.csdn.net/gislaozhang/article/details/105537046
在要素服務下發現能夠同步看到新增加的要素
前端調用
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<title>Intro to FeatureLayer - 4.15</title>
<link
rel="stylesheet"
href="https://js.arcgis.com/4.15/esri/themes/light/main.css"
/>
<script src="https://js.arcgis.com/4.15/"></script>
<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
<script>
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer"
], function(Map, MapView, FeatureLayer) {
var map = new Map({
basemap: "hybrid"
});
var view = new MapView({
container: "viewDiv",
map: map,
extent: {
// autocasts as new Extent()
xmin: -13636911.881500,
ymin: 4546224.050300,
xmax: -13627604.100100,
ymax: 4538485.079100,
spatialReference: 102100
}
});
/********************
* 添加要素圖層
********************/
// Carbon storage of trees in Warren Wilson College.
var featureLayer = new FeatureLayer({
url:
"https://zjq2018.gis.com:6443/arcgis/rest/services/Untitled/FeatureServer/0"
});
map.add(featureLayer);
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>