使用ArcGIS Mobile SDK 9.3 开发移动设备应用-中级篇(转)
2010-02-09 16:03
543 查看
接初级篇。
ScaleBar控件 ScaleBar兼有比例尺和进度条的功能。ScaleBar对象同时和Map和MobileService对象关联,与Map的关联可以显示当前地图的比例大小,与MobileService的关联可以显示当前设备从服务器同步数据的进程。当然,你也可以把ScaleBar与MobileService对象的关联去除掉,好让ScaleBar显得更加纯粹一点。 空间参考空间参考(Spatial Reference)是GIS的一个非常重要的组成部分,空间参考包括地理坐标系和投影坐标系。我们通过MobileService获得地图是有空间参考的,但是,在移动设备上,有时候还需要将一些坐标点(比如GPS信息)标注到地图上,这时就还需要进行空间参考的处理。以下代码表现的是如何将一个GPS经纬度坐标(WGS84)转化为一个当前空间参考下的坐标值。是不是很简单?
GPS支持ArcGIS Mobile提供了3个GPS相关的控件对GPS进行支持:l FileGpsConnection l SerialPortGpsConnection l GpsDisplay 对名称的第一印象我们就可以大概知道,FileGpsConnection可以提供文件GPS连接,在调试中可能使用比较多;SerialPortGpsConnection则提供串口GPS连接,实际应用一般都会用到;GpsDisplay和上述两种GpsConnection联动,实现GPS信息在地图上的表现。 在没有GPS设备的时候,我们先使用FileGpsConnection进行调试。FileGpsConnection的原理就是从一个包含GPS数据的文本文件,模拟一个GPS连接。当然,首先需要准备一个GPS文件,这个文件手写是写不出来的,获得的最便捷的方法是安装Windows Mobile 6 Professional SDK的FakeGPS工具(“%WINDOWS_MOBILE_6_SDK_HOME%/Tools/GPS”),其中包含有GPS数据文件。我把“fakegpsdata.txt”文件复制到“/Storage Card”目录下,再给FileGpsConnection对象指定FileName属性为“/Storage Card/fakegpsdata.txt”。 我们在菜单上新建两个菜单项,用以打开关闭GPS连接:
其实,这个时候我们完全可以不用GpsDisplay,而直接通过GpsConnection做任何事情。我们给FileGpsConnnection添加一个消息响应函数,每次GPS位置点改变了就触发一次:
离线编辑功能ArcGIS Mobile的编辑功能可以在离线状态下使用,当然,前提要有空间数据缓存。要使用ArcGIS Mobile的编辑功能,首先需要在Map对象中添加一个或者几个sketchGraphicLayer对象,我们的编辑将会在这些图层上进行。如果有必要,我们还可以针对Map的其它设置作一些改变,比如捕捉: 和地图浏览的Action类似,我们还需要给Map添加一些编辑的Action: 好,下面我们试着在sketchGraphicLayer上添加一个多边形:
当然,接着马上要做的事情就是保存刚才所作的编辑,写程序的大多都有Ctrl+S的好习惯。保存刚才的编辑到缓存图层是一件很容易的事情,看一下这段代码:
l 图层不是SDE图层 l 图层没有Global ID(这是Mobile应用一个特殊的地方) 这个时候,你或许可以尝试这个方法: 在线上传编辑在线上传编辑可以把在本地缓存上进行的编辑操作提交到服务器,使用方法很简单:
异步请求和响应在ArcGIS Mobile中,我们可以看到很多以Async结尾的方法,比如常用的GetFeatureDataAsync ()方法等等。从名称就可以看出来,这些方法会向服务器发送一个异步的请求,但是,请求何时完成,请求的结果如何,并不是由这个方法及其后续来处理。对异步请求结果的处理,可以通过MobileService对象的几个消息响应函数实现,主要包括RequestCompleted、RequestProgressChanged等。当MobileService接收到了服务器发来的消息,表示请求有了反馈了,这些消息响应函数则被调用,来实现后续的处理。 有个很自然的问题,我可能向服务器发送了很多种的请求,MobileService对象怎么来分辨接收到的反馈属于谁呢?我们回头看一下Async方法的参数会发现,Async方法的参数中都有一个名叫 userState的object对象,这个对象用来表示Async请求发生时候的用户状态,也就是对请求进行了标识。 CatalogService控件CatalogService控件用以发现某个服务器上的Mobile服务。在ArcGIS Server服务器上,一个服务器下可以有若干个文件夹,一个文件夹下可以有若干个地图服务对象,每个地图服务对象提供1种以上地图服务(Mobile Access、WFS……)。CatalogService对象就可以把这个层次结构挖掘出来,并获得详细的信息。获得文件夹:
|
相关文章推荐
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-中级篇
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-中级篇(zz)
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-中级
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-中级篇
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-初级篇(转)
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-高级篇
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-初级篇
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-初级篇
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-初级篇(zz)(转稿)
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-高级篇(转)
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-高级篇
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-高级篇(转)
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-初级
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-高级篇
- 使用ArcGIS Mobile SDK 9.3 开发移动设备应用-高级篇(zz)
- 使用最新版本Dojo1.7的dojox/mobile开发移动设备web应用
- 使用最新版本Dojo1.7的dojox/mobile开发移动设备web应用
- C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.)
- 使用VS2005开发移动设备应用