【ArcGIS Runtime SDK for Android】离在线一体化技术(笔记)

目录

1、思路

​2、环境部署

3、发布具有同步能力的要素服务

4、编辑和同步要素

一些小经验


1、思路

数据首先存储于SDE中,要素添加GlobleID,图层数据启用数据归档或开启版本化。然后将SDE数据库托管于ArcGIS for Server作为数据存储。

在ArcGIS for Desktop桌面软件中制作待同步矢量数据,配置符号化显示,属性域等信息,发布FeatureServer服务到ArcGIS for Server并开启同步功能选项。

移动端以域名方式访问FeatureServer服务,下载数据、编辑数据、同步数据。

局域网下用ip地址访问server中的地图服务可以参考https://www.cnblogs.com/gis-luq/p/5858043.html,本文是基于域名来访问server中的地图服务。


2、环境部署

局域网下移动端以域名方式访问FeatureServer服务需要在电脑本机安装DNS服务器,然后在手机上设置本地代理。

按照链接https://www.jb51.net/article/137012.htm介绍使用BIND9安装DNS服务器

①其中name.conf和gis.com.zone文件的配置如下:

②将我们本机电脑默认的DNS服务器改成127.0.0.1或本机IP,如果想让DNS服务器正常访问本机IP与DNS服务必须设置固定IP

下述图片我填的都是本机ip地址

③ 将本机server内置在线api改为本地api,参考https://blog.csdn.net/gislaozhang/article/details/103700327

采用http://zjq2018.gis.com/*******的形式。

④手机上设置本地代理

参考https://jingyan.baidu.com/article/219f4bf7ff97e6de442d38c8.html

⑤手机浏览器显示电脑地图服务

http://zjq2018.gis.com:6080/arcgis/rest/services/SampleWorldCities/MapServer

下图说明手机端已能访问电脑端的地图服务

 

 手机浏览器内核不同,采用的是在线API所以没有显示地图服务,不要紧。

最终通过ArcGIS runtime sdk100.7基于

https://developers.arcgis.com/android/latest/java/sample-code/arcgis-map-image-layer-url/代码进行测试,其中动态地图服务采用server自带的全球动态地图服务http://zjq2018.gis.com:6080/arcgis/rest/services/SampleWorldCities/MapServer

3、发布具有同步能力的要素服务

将sde中的数据发布成要素服务,操作方法参考https://www.cnblogs.com/gis-luq/p/5857188.html,不同的是我这只是为了测试,只将sde中的要素类添加数据GlobalID、启用数据存档,没有进行注册版本化。

4、编辑和同步要素

通过ArcGIS runtime sdk100.7基于https://developers.arcgis.com/android/latest/java/sample-code/edit-and-sync-features/的示例调用上一步发布的要素服务(http://zjq2018.gis.com:6080/arcgis/rest/services/fs/testareapt/FeatureServer)进行测试。

在手机端点击“generate geodatabase”按钮会在手机本地指定的位置生成.geodatabase地理数据库文件,将两个要素点移动其位置,移动完成之后点击“sync geodatabase”按钮会将更改后的结果同步会要素服务。

打开要素服务,发现要素点的位置是手机端移动后的位置。

一些小经验

①如果发现在安装完BIND9软件后,在C:\Program Files\ISC BIND 9文件“属性”面板——“安全”下没有name用户,那么在“高级”选项将其找到添加即可。

②通过cmd启动启动DNS服务器报“发生系统错误 5. 拒绝访问”,可以通过以管理员身份运行cmd即可成功启动DNS服务。

③局域网下手机端可以通过ip访问电脑iis web服务器中的一张图片,例如:http://192.168.0.105/test.png,但是在手机却不能通过ip访问本机的地图服务,报“无法打开网页”,

这是由于防火墙是打开状态,通过在防火墙高级设置中加入6080和6443端口,解决问题。设置方法参考

http://www.xitongcheng.com/jiaocheng/win10_article_12908.html

④编辑和同步示例中,能够将要素服务离线下载为.geodatabase文件,编辑后能够成功同步,但是在电脑打开要素服务,发现要素服务没有更新,将.geodatabase通过arcmap的copy runtime geodatabase to file geodatbase工具转为gdb发现数据明明是编辑后的样子。出现这种原因是发布要素服务之前,要素类被注册为版本造成的,通过不注册版本只添加Global ID和启用存档就能解决。

⑤将.geodatabase通过arcmap10.7.1的copy runtime geodatabase to file geodatbase工具运行时报错,报“error 001730:Could not open the Runtime Geodatabase ****** ”

这个问题不好复现,我有时又不会出现那种情况,但是如果遇到这种情况只需将这个.geodatabase拷贝到其它路径下重命名文件名即可解决,例如:test.geodatabase改为abctest.geodatabase。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值