引言:本文将介绍如何使用C#建立手机上的电子地图程序(Mobile GIS),本程序可以在手机上显示ESRI公司的.SHP格式地图文件。本程序代码下载:myHiMap.zip [程序动画]
一、系统需求:
开发环境:Windows XP, .NET Compact Framework 2.0, Windows Mobile 5 SDK, HiMap Beta1 runtime
运行环境:DOPOD D600手机(Windows Mobile 5.0)
二、程序功能列表:
1、添加图层----Add Layers
2、设置图层----Setup Layers
3、放大----ZoomIn
4、缩小----ZoomOut
5、漫游----Pan
6、全图----Full Extent
7、前一视图----Previous Extent
8、后一视图----Next Extent
9、测距----Distance
10、信息查询----Information
11、定位点坐标----Position
三、开发步骤
1、在http://www.k-work.cn/pages/HiMapPages/ch/download.html下载HiMap Beta1 runtime,得到HiMapBeta1-Runtime.zip,解压缩得到"HiMap.Carto.dll, HiMap.Driver.dll, HiMap.Geometry.dll, HiMap.MapControls.dll, HiMap.Style.dll, KMGisLib.dll"。
2、运行Microsoft Visual Studio 2005(以下简称VS2005),在文件菜单中选择:新建->项目
3、在[新建项目]对话框中选择Visual C#->智能设备->Windows Mobile 6 Professional->Device Application->在[名称(N)]文本框中输入"myHiMap"->确定
4、在[解决方案资源管理器]窗口中,鼠标右键点击[引用],选择[添加引用]。
5、添加成功后,将看到如下内容:
6、在[工具箱]窗口使用鼠标右键点击空白处,在弹出的菜单中选择[选择项]。
7、在[选择工具项]窗口中,点击[浏览]按钮。
8、在[打开]窗口中,找到并选中“HiMap.MaoControls.dll”文件,点击[打开]按钮。
9、在[选择工具箱项]窗体中,点击[确定]按钮。
10、添加成功后,左侧[工具箱]中将出现如下这些控件。
11、在[工具箱]中找到“MapControl”控件,将其拖动到Form1.cs[设计]窗口中,并将其[Dock属性设置为Fill]。
12、在"namespace myHiMap"上方添加"using HiMap.Carto;"和" using HiMap.Driver;"的引用。
using HiMap.Carto;
using HiMap.Driver;
13、为Form1.cs窗体添加"Form1_Load"事件,并填写以下代码
private void Form1_Load(object sender, EventArgs e)
{
//建立新的地图对象
Map map = new Map("test");//使用Shape驱动建立元数据工厂
IDataFactory dataFactory = new HiMap.Driver.Shape.ShapeDataFactory("Storage Card");
//打开一个元数据
IFeatureClass featureClass = (IFeatureClass)dataFactory.Open("One.shp");
//通过元数据建立矢量图层
IFeatureLayer featureLayer = new FeatureLayerClass(featureClass);//将图层添加到地图对象中
map.AddLayer(featureLayer);
//地图控件绑定地图对象
mapControl1.Map = map;
//刷新显示地图
mapControl1.MapRefresh();
}
14、将Windows Mobile 5.0 for Pocket PC或Windows Mobile 6 Professional的移动设备(本示例使用的是Windows Mobile 5.0 for Pocket PC的dopod D600手机)通过Microsoft ActiveSync(本示例使用的是4.5.0版本)与当前使用的PC连接。
注意:由于建立项目时选择的是"Windows Mobile 6 Professional"平台,所以现在要将平台转换为适应当前设备的"Windows Mobile 5.0 Pocket PC"平台。
在VS2005的[解决方案资源管理器]中,用鼠标右键单击项目[myHiMap],在弹出的菜单中选择[更改目标平台],并选择"更改为:Windows Mobile 5.0 Pocket PC SDK",点击[确定]按钮。在弹出的询问是否继续窗口中点击[是]按钮。最后,在VS2005的[设备]工具条中选择"Windows Mobile 5.0 Pocket PC Device"。
15、在VS2005的[解决方案资源管理器]中,用鼠标右键单击项目[myHiMap],在弹出的菜单中选择[部署]。
16、部署成功后,将HiMapBeta1-Runtime.zip解压缩后得到的KMGisLib.dll文件拷贝到移动设备的"Program Filesmyhimap"目录中。或者使用VS2005自带的部署功能将其复制到程序目录下。
17、将地图文件"One.shp,One.shx,One.dbf"(地图文件下载)通过Microsoft ActiveSync或存储卡拷贝到移动设备的"Storage Card"目录下(如果没有此目录,请手动建立)。
18、在VS2005中,点击[启动调试]按钮。
19、运行成功,如图:

20、为窗体添加菜单和功能。如图:
21、为这些方法添加实现的代码,如ZoomIn菜单项的代码:
/// <summary>
/// ZoomIn Tool
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void menuItem4_Click(object sender, EventArgs e)
{
//放大工具
HiMap.MapControls.Tools.ITool cmd = new HiMap.MapControls.Tools.ToolZoomIn();
//初始化工具
cmd.OnCreate(this.mapControl1);
//激活此工具为当前工具
this.mapControl1.CurTool = cmd;
}
22、其他功能的代码请参考源文件:myHiMap.zip,最终运行结果如图:[程序动画]
- 电脑管家荣耀分享发现设备界面搜不到设备荣耀手机管家「电脑管家荣耀分享发现设备界面搜不到设备」
- 钱江观潮丨洞头贝雕,在海岛连接世界
- 轻便防摔 OtterBox COMMUTER保护壳评测苹果手机参数对比「轻便防摔 OtterBox COMMUTER保护壳评测」
- 苹果手机怎么把闹钟调成震动苹果手机怎么设置闹钟铃声「苹果手机怎么把闹钟调成震动」
- 电脑上如何备份iPhone中的数据?iphone怎么备份数据到电脑苹果手机备份到电脑「电脑上如何备份iPhone中的数据?iphone怎么备份数据到电脑」
- 苹果手机怎么传录音苹果手机录音「苹果手机怎么传录音」
- 谷歌Pixel手机获延长更新支持:生命周期推至五年pixel手机「谷歌Pixel手机获延长更新支持:生命周期推至五年」
- 最佳设计十大概念手机排行榜手机爱好者收藏吧概念手机「最佳设计十大概念手机排行榜手机爱好者收藏吧」
- 手游手柄大揭秘:提升游戏体验的必备神器手机游戏手柄「手游手柄大揭秘:提升游戏体验的必备神器」
- 快速清理大师 1.7.5手机一键清理「快速清理大师 1.7.5」