需求:
基于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>