首页 文章

ArcGis离线 Map 图层更改同步

提问于
浏览
0

在我的WPF应用程序中,我正在尝试使用离线 Map 功能 . 现在我的功能服务配置为数据同步,我可以在服务器上创建数据副本并下载地理数据库的本地副本 .

gdbSyncTask = await GeodatabaseSyncTask.CreateAsync(_featureServiceUri);

Envelope extent = new Envelope(xmin, ymin, xmax, ymax, new SpatialReference(wkidStart));

GenerateGeodatabaseParameters generateParams = await _gdbSyncTask.CreateDefaultGenerateGeodatabaseParametersAsync(extent);


_generateGdbJob = _gdbSyncTask.GenerateGeodatabase(generateParams, _gdbPath);
_generateGdbJob.JobChanged += GenerateGdbJobChanged;
_generateGdbJob.ProgressChanged += ((object sender, EventArgs e) =>
{
    UpdateProgressBar();
});
_generateGdbJob.Start();

初始同步后,我能够在离线模式下成功使用 Map . 这包括添加新几何或在本地DB中编辑现有多边形等操作 .

但是,当我尝试将更改同步回服务器时 - 我没有得到任何结果 .

要与本地数据库执行数据同步 - 我使用以下代码:

SyncGeodatabaseParameters parameters = new SyncGeodatabaseParameters()

{

GeodatabaseSyncDirection = SyncDirection.Bidirectional,

RollbackOnFailure = false              

};



Geodatabase gdb = await Geodatabase.OpenAsync(this.GetGdbPath());

foreach (GeodatabaseFeatureTable table in gdb.GeodatabaseFeatureTables)

{

long id = table.ServiceLayerId;
SyncLayerOption option = new SyncLayerOption(id);
option.SyncDirection = SyncDirection.Bidirectional;
parameters.LayerOptions.Add(option);   
}


_gdbSyncTask = await GeodatabaseSyncTask.CreateAsync(_featureServiceUri);

SyncGeodatabaseJob job = _gdbSyncTask.SyncGeodatabase(parameters, gdb);  
job.JobChanged += SyncJob_JobChanged;
job.ProgressChanged += SyncJob_ProgressChanged;
job.Start();

一切顺利 . 同步以状态“Succeeded”结束 . SyncGeodatabaseJob记录的消息如下面的屏幕所示:
enter image description here

但是 - 当我从 Map Web客户端内的服务器打开已编辑的要素图层时,我找不到任何本地更改 . 在服务数据库中,我还可以看到在同步期间没有创建新记录 .

有趣的是,当我在web中打开“Replica”数据时,我可以看到以下信息:

Replica Server Gen: 2 Creation Date: 2018/02/07 10:49:54 UTC Last Sync Date: 2018/02/07 10:49:54 UTC

“上次同步数据”等于副本“创建日期”但是,在ArcMap的副本日志中,我可以看到以下信息:

enter image description here

任何人都可以告诉我应该如何解释上述情况?我错过了代码中的一些步骤吗?或者服务器上可能缺少某些配置功能?看起来数据修改成功地推送回服务器上的副本但是在该副本与服务器数据库不同步之后(它应该自动工作吗?) .

我是一个关于ArcGis开发的“新手”,所以任何帮助都将受到赞赏

2 回答

相关问题