- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ArcGIS Mobile GIS应用开发ArcGIS Mobile是ArcGIS Server 9.2中新加入的一个SDK,用来开发与ArcGIS Server服务式GIS平台无缝集成的Mobile应用程序,也可以运行在桌面计算机上。目前SDK最高版本为9.3,不过在ESRI今年发布的ArcGIS 10中会被升级到ArcGIS Mobile 10版本,具体的一些介绍可以到ESRI网站上去有哪些信誉好的足球投注网站。
众所周知,目前国内使用ArcGIS Mobile做开发的人和公司好像没有多少,毕竟是新东西,技术含量比较高,这一点从ESRI中国社区论坛上就可以看出来,零星的有人问个特简单的问题。
(1)程序UI设计
比较经典的GIS系统通常要具备地图的显示、地图漫游功能、图层控制功能、属性查询以及量测工具等等。这些功能也是GIS系统最核心的基础功能。该系统界面主要使用了菜单栏、工具条、树控件、Map控件、DataGrid控件来搭建,下面看图:
菜单栏提供了程序中所有的功能,工具条提供了地图的平移、放大、缩小、属性查询的快捷方式,左侧的树控件提供了图层可见性的控制。
属性查询窗体中提供了选择地物的分类和元素的管理,当在左侧树控件中选择时将属性信息显示在右侧的表格中。
(2)功能实现
在文件菜单中提供了“打开地图”命令,用于选择本地磁盘中的地图文件。由于ArcGIS Mobile是与ArcGIS Server无缝集成的,它所使用的数据源均为Server发布的服务,包括MapService、GeoCoding、GeoProcessing等等,所以本地磁盘的地图文件实际上是保存在磁盘上的地图缓存,它们是以.bin为结尾的。
地图缓存也可以通过ArcToolbox中提供的Mobile Tools制作。下面看代码:
①打开文件
在打开文件对话框中返回文件的绝对路径,使用FileInfo和DirectoryInfo两个类获取文件的父路径。
private void OpenMapMenuItem_Click(object sender, EventArgs e){string path = ;
if (openFileDialog1.ShowDialog() == DialogResult.OK){string filename = openFileDialog1.FileName;FileInfo file = new FileInfo(filename);DirectoryInfo fileinfo = file.Directory;path = fileinfo.ToString();OpenMapFiles(path);//打开地图文件map1.CurrentMapAction = panMapAction1;}}
OpenMapFiles()方法用来设置地图文件路径、URL,最后加载服务。
private void OpenMapFiles(string path){try{mobileService1.Close();mobileService1.CacheStoragePath = path;//设置缓存路径mobileService1.Open(CacheOpenMode.Open);//加载缓存PopLayers();}catch (FileNotFoundException ex){MessageBox.Show(ex.Message, 提示, MessageBoxButtons.OK);}catch (OverflowException ex){MessageBox.Show(ex.Message, 提示, MessageBoxButtons.OK);}}
PopLayers()方法用于向树控件中添加节点,节点的Text属性均被设置为图层名。
private void PopLayers(){treeView1.Nodes.Clear();
foreach (MapLayer layer in map1.MapLayers){MobileServiceMapLayer mapLayer = layer as MobileServiceMapLayer;
if (mapLayer == null)continue;
FeatureLayer feaLayer = mapLayer.Layer as FeatureLayer;
if (feaLayer == null)continue;
string layerName = feaLayer.Name;treeView1.Nodes.Add(layerName);}
foreach (TreeNode node i
文档评论(0)