ArcGISMobile 10第一个移动程序
之前为大家介绍了ArcGIS Mobile 10在安装程序和控件方面的新增和改进的部分,下面开始着手建立第一个移动应用程序的开发和部署。就像所有的程序开发一下,第一个程序就叫Hello World,下面就是基本的实现步骤
1、首先启动Visual Studio .NET 2008,并新建一个工程选择“智能设备”项目,然后在目标平台中选择Windows Mobile 5.0 Pocket PC SDK ,在.NetCompact Framework Version中选择2.0。
2、直接拖拽ArcGIS Mobile Controls中的Map控件到窗体上,这时你会发现窗体的控件栏上多了一个MobileCache1。不在是以前9.3时的MobileService控件。我们还需要对Map控件的DataSources属性设置为MobileCache1,这样就将数据源绑定到了Map控件中。然后将Map1控件的Dock属性设置为Fill,这样地图控件就充满全屏。对于屏幕本来就小的移动设备,这样更能让我看的比较舒服。
3、 上面将Map控件和MapCache进行绑定还不能让我们直接显示地图,还需要写几句代码来设定Map的数据源在移动设备上的具体物理位置。如下:
首先引用命名空间
using ESRI.ArcGIS.Mobile;
usingESRI.ArcGIS.Mobile.MobileServices;
……………
privatevoid Form1_Load(object sender, EventArgs e)
{
// 指定地图缓存存放的位置
mobileCache1.StoragePath=Environment.GetFolderPath(Environment.SpecialFolder.Personal)+ @”MapCache”;
if (!mobileCache1.IsValid)
{
MessageBox.Show(“Map Cache is not valid!”);
return;
}
if (mobileCache1.IsEmpty)
{
try
{
// 如果指定位置没有地图缓存的话,从ArcGIS Server发布的Mobile Services上下载地图缓存,其中需要使用到mobileServiceConnection控件
mobileServiceConnection1.Url=@http://YourServer/YourArcGISServerInstance/services/YourMobileServiceName/MapServer/MobileServer;
mobileCache1.DeleteCache();
MobileCacheSyncAgent mobilesync=newMobileCacheSyncAgent(mobileCache1,mobileServiceConnection1);
mobileServiceConnection1.CreateCache(mobileCache1);
mobilesync.Synchronize();
}
catch
{
MessageBox.Show(“Cannot synchronize with this service”);
}
}
try
{
mobileCache1.Open();
}
catch
{
MessageBox.Show(“Cannot open map cache”);
}
}
4、 接下来就是配置我们程序的运行环境了,你可以直接连一个真实的移动设备(操作系统要求是windows Mobile 5)也可以部署到虚拟机里面。这里我先部署到虚拟机里面,程序调试一般也都在虚拟机里来完成。在VS2008工具栏中-“工具”-“设备仿真器管理器”
5、 这个时候还需要往虚拟机里部署我们地图缓存,安装ArcGIS Mobile Runtime等操作,所以首先需要连接连通虚拟机,你可以通过Sync4.5或者Windows Mobile设备中心来连接虚拟机
连接之后首先要将ArcGIS Mobile Runtime进行部署安装,ArcGIS安装路径Mobile10.0InstallAGMRuntime.CAB。该文件是ArcGIS Mobile在移动设备上的运行时,如果不安装该文件在程序运行时就会报MissingArcGIS registry key的错误。
接着就部署地图缓存了,根据上面代码中编写的一样我们在移动设备的MyDocumentMapCache位置方式我们的地图缓存。ArcGIS Mobile 10中地图缓存和9.3中也不一样了,更简洁了些
最后看一下运行结果