ArcGIS Runtime数据制作过程文档格式.docx
《ArcGIS Runtime数据制作过程文档格式.docx》由会员分享,可在线阅读,更多相关《ArcGIS Runtime数据制作过程文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
ArcGISRuntime所能支持的数据格式,我们可以称之为Package,目前包括MPK,TPK,GPK以及APK四种格式。
离线包的应用场景,为什么要做,在那个环境使用,与公司产品或项目结合说明。
(一)Mappackage(MPK):
包含地图文档mxd以及图层引用的数据,这样便于用户或组织在ArcGISOnline上进行分享。
(二)Tilepackage(TPK):
包含地图文档的缓存数据,也就是切片后的数据,TPK一方面便于用户或组织在ArcGISOnline上分享数据,另一方面也为离线条件下访问数据提供一种方案。
注意:
基础数据基本都是tpk,业务数据mpk。
(三)Geoprocessingpackage(GPK):
是将一个能够成功运行的地理处理模型创建成一个压缩文件,方便分享和地理处理的工作流程。
(四)Locatorpackage(APK):
是将包含一个定位器或复合定位器的工具打包成一个方便、便捷的文件,便于用户或组织在ArcGISOnline上分享。
1.1环境要求:
ArcGIS_Engine
1.2准备数据
数据格式:
GDB、MDB(经过验证,是可以的)。
如果mxd使用的是mdb数据库,经过mpk打包之后,包里的数据成为了gdb格式。
1.3启用ArcGISRuntime工具
打开ArcMap10.1,要启用ArcGISRuntime工具,需要在菜单栏→自定义→ArcGIS选项→Sharing中,勾选ArcGISRuntimeTool
1.4创建MPK
(一)在菜单栏File→ShareAs菜单下选择MapPackage,如下图,
(二)记住勾选复选框,如果这个地方不勾选,mpk包里会缺少一个后缀为msd格式的文件。
(三)在弹出的窗口中填写相关信息,其中ItemDescription中的summary、tag、Description(地图文档属性信息)三项都为必填信息,如下图,
(四)另外创建MPK还需要填写地图文档属性信息,如果这些信息没有填写,那么这个Package是不能创建成功的,而ArcMap会体贴的给出提示信息,如下图
按照这个错误信息,我们对相关内容进行完善或修改,
(五)修正完这些错误后,点share命令,成功的话,将看到下面的界面
(六)打包后的MPK包是可以使用rar的工具进行查看,当然tpk也是可以用rar打开,他们其实就是一个压缩包;
如图
(一),是mpk和tpk包;
图
(二),是MPK里的部分内容,其中包括gdb数据、MXD、MSD等。
图
(一)
图
(二)
说明:
双击mpk可以直接打开mxd。
1.5创建TPK
(一)制作切片方案
创建tpk包前,要生成切片方案,首先在工具里找到GenerateMapServerCacheTilingScheme,
(二)绿色需要修改,红色默认即可。
切片比例尺是根据mxd设置的显示比例尺设定的。
(三)创建TPK和MPK步骤类似,在File→ShareAs的时候选择TilePackage,然后填写相关信息;
(四)填写ItemDescription选项卡下的内容,其中ItemDescription中的summary和tag等都为必填信息;
(五)创建TPK时需在TileFormat栏根据需要选择切片方案和图片的格式;
在制作tpk过程中,切片方案处,如果使用默认的切片方案,则tpk默认的是坐标系是WGS84的,如果想要得到tpk制作的地图数据和原数据坐标系一致,需要修改切片方案,切片方案要选择发布的服务。
(六)完成相关设置之后,点击Share,点击Share后,软件会先进行切片,然后进行tpk打包,你看到后缀为tpk的文件,这时候已经是切片后的成果了。
下面是打开好的tpk截图
Tpk解压后,把Layers.lyr拖到arcmap里是可以浏览的。
把mpk和tpk放到我们公司开发的软件对应目录下,当然还需要其他的设置,需要开发人员协助。
2SQLite数据库的修改
为什么要做数据库的修改(这一部分是和软件有关,程序通过读取数据库结构,从而读取mpk和tpk包数据,个人理解,具体可以询问开发人员)
2.1安装火狐浏览器
2.2添加组件SQLiteManager
搜索SQLiteManager及安装组件。
2.3添加数据库
数据库后缀为.sqlite
2.4插入记录
首先认识一下要修改的表,
关系:
关系说明:
表TB_MAPLAYER中的列F_MAPSERVICEID要使用的值是表TB_MAPSERVICE中的列FID的值。
表TB_MAPLAYERFIELD中的列F_LAYERIDFID要使用的值是表TB_MAPLAYER中的列FID的值。
表截图:
TB_MAPSERVICE
TB_MAPLAYER
F_LAYERIDFID
数据的录入此处不讲解。