C#实现在手机上编辑电子地图
2008-11-13 22:32
501 查看
一、系统需求:
开发环境:Windows XP, .NET Compact Framework 2.0, Windows Mobile 5 SDK, HiMap Beta1 runtime
运行环境:DOPOD D600手机(Windows Mobile 5.0)
二、程序功能列表:
1、绘制几何图形----Draw Geometry
2、编辑几何图形----Edit Geometry
3、删除几何图形----Delete Geometry
4、设置几何图形属性----Edit Property
![](http://www.zxbc.cn/uploads/allimg/081111/0827250.jpg)
三、实现方法简介
首先,简要介绍实现这些功能的基本方法。具体函数说明请参考《HiMap帮助》。
//1.新建要素
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个要素
IFeature feat = cls.CreateFeature();
//保存要素的修改
feat.Save();
//2.删除一个要素
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个过滤器
IQueryFilter qf=new QueryFilterClass();
//设置条件
qf.WhereClause="id =1";
//查询数据
IFeatureCursor cur = cls.Search(qf);
//取得一个要素
IFeature feat = cur.Next();
//删除一个要素
if (feat != null)
{
cls.DeleteFeature(feat);
}
//3.修改要素的属性值
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个过滤器
IQueryFilter qf=new QueryFilterClass();
//设置条件
qf.WhereClause="id =1";
//查询数据
IFeatureCursor cur = cls.Search(qf);
//取得一个要素
IFeature feat = cur.Next();
if (feat != null)
{
//写入值
feat.SetValue(cls.Fields.FindField("name"), "测试数据");
//保存
feat.Save();
}
//4.修改要素的几何图形
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个过滤器
IQueryFilter qf=new QueryFilterClass();
//设置条件
qf.WhereClause="id =1";
//查询数据
IFeatureCursor cur = cls.Search(qf);
//取得一个要素
IFeature feat = cur.Next();
if (feat != null)
{
//图层为线形Shape,所以使用IPolyline取得图形
HiMap.Geometry.IPolyline line = (HiMap.Geometry.IPolyline)feat.Shape;
IPointCollection chline = (IPointCollection)line;
//建立点(测试数据)
IPoint pt1 = new PointClass();
pt1.X = "111.2345556";
pt1.Y = "23.2345556";
IPoint pt2 = new PointClass();
pt2.X = "112.2345556";
pt2.Y = "23.3345556";
//添加点到线中
chline.AddPoint(pt1);
chline.AddPoint(pt2);
//将修改后的图形赋给要素
feat.Shape = (IGeometry)line;
//保存
feat.Save();
}
//5.为线或面添加新的部分
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个过滤器
IQueryFilter qf=new QueryFilterClass();
//设置条件
qf.WhereClause="id =1";
//查询数据
IFeatureCursor cur = cls.Search(qf);
//取得一个要素
IFeature feat = cur.Next();
if (feat != null)
{
//图层为线形Shape,所以使用IPolyline取得图形
HiMap.Geometry.IPolyline line = (HiMap.Geometry.IPolyline)feat.Shape;
//建立一条新的线
IPointCollection chline = new PolylineClass();
//建立点(测试数据)
IPoint pt1 = new PointClass();
pt1.X = "111.2345556";
pt1.Y = "23.2345556";
IPoint pt2 = new PointClass();
pt2.X = "112.2345556";
pt2.Y = "23.3345556";
//添加点到线中
chline.AddPoint(pt1);
chline.AddPoint(pt2);
HiMap.Geometry.IGeometryCollection geoColl = (HiMap.Geometry.IGeometryCollection)line;
//将新的线添加到原有的线中
geoColl.AddGeometry((IGeometry)chline);
//将修改后的图形赋给要素
feat.Shape = (IGeometry)line;
//保存
feat.Save();
}
开发环境:Windows XP, .NET Compact Framework 2.0, Windows Mobile 5 SDK, HiMap Beta1 runtime
运行环境:DOPOD D600手机(Windows Mobile 5.0)
二、程序功能列表:
1、绘制几何图形----Draw Geometry
2、编辑几何图形----Edit Geometry
3、删除几何图形----Delete Geometry
4、设置几何图形属性----Edit Property
![](http://www.zxbc.cn/uploads/allimg/081111/0827250.jpg)
三、实现方法简介
首先,简要介绍实现这些功能的基本方法。具体函数说明请参考《HiMap帮助》。
//1.新建要素
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个要素
IFeature feat = cls.CreateFeature();
//保存要素的修改
feat.Save();
//2.删除一个要素
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个过滤器
IQueryFilter qf=new QueryFilterClass();
//设置条件
qf.WhereClause="id =1";
//查询数据
IFeatureCursor cur = cls.Search(qf);
//取得一个要素
IFeature feat = cur.Next();
//删除一个要素
if (feat != null)
{
cls.DeleteFeature(feat);
}
//3.修改要素的属性值
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个过滤器
IQueryFilter qf=new QueryFilterClass();
//设置条件
qf.WhereClause="id =1";
//查询数据
IFeatureCursor cur = cls.Search(qf);
//取得一个要素
IFeature feat = cur.Next();
if (feat != null)
{
//写入值
feat.SetValue(cls.Fields.FindField("name"), "测试数据");
//保存
feat.Save();
}
//4.修改要素的几何图形
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个过滤器
IQueryFilter qf=new QueryFilterClass();
//设置条件
qf.WhereClause="id =1";
//查询数据
IFeatureCursor cur = cls.Search(qf);
//取得一个要素
IFeature feat = cur.Next();
if (feat != null)
{
//图层为线形Shape,所以使用IPolyline取得图形
HiMap.Geometry.IPolyline line = (HiMap.Geometry.IPolyline)feat.Shape;
IPointCollection chline = (IPointCollection)line;
//建立点(测试数据)
IPoint pt1 = new PointClass();
pt1.X = "111.2345556";
pt1.Y = "23.2345556";
IPoint pt2 = new PointClass();
pt2.X = "112.2345556";
pt2.Y = "23.3345556";
//添加点到线中
chline.AddPoint(pt1);
chline.AddPoint(pt2);
//将修改后的图形赋给要素
feat.Shape = (IGeometry)line;
//保存
feat.Save();
}
//5.为线或面添加新的部分
//取得一个图层
IFeatureLayer lyr = (IFeatureLayer)mapControl1.Map.GetLayer(0);
//取得一个元数据
IFeatureClass cls = (IFeatureClass)lyr.Class;
//建立一个过滤器
IQueryFilter qf=new QueryFilterClass();
//设置条件
qf.WhereClause="id =1";
//查询数据
IFeatureCursor cur = cls.Search(qf);
//取得一个要素
IFeature feat = cur.Next();
if (feat != null)
{
//图层为线形Shape,所以使用IPolyline取得图形
HiMap.Geometry.IPolyline line = (HiMap.Geometry.IPolyline)feat.Shape;
//建立一条新的线
IPointCollection chline = new PolylineClass();
//建立点(测试数据)
IPoint pt1 = new PointClass();
pt1.X = "111.2345556";
pt1.Y = "23.2345556";
IPoint pt2 = new PointClass();
pt2.X = "112.2345556";
pt2.Y = "23.3345556";
//添加点到线中
chline.AddPoint(pt1);
chline.AddPoint(pt2);
HiMap.Geometry.IGeometryCollection geoColl = (HiMap.Geometry.IGeometryCollection)line;
//将新的线添加到原有的线中
geoColl.AddGeometry((IGeometry)chline);
//将修改后的图形赋给要素
feat.Shape = (IGeometry)line;
//保存
feat.Save();
}
相关文章推荐
- 移动 嵌入式 GIS - 享受 移动 GIS(2) 用C#在手机上编辑电子地图
- 移动 嵌入式 GIS - 享受 移动 GIS(1) 用C#建立手机上的电子地图程序
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十一)地图遮罩层的实现
- Arcgis API for JavaScript在地图上实现手机定位信息的追踪显示
- (C#)DataGrid实现自定义分页,鼠标移至变色,删除确认、可编辑,可删除
- C#中如何实现电子盖章?
- 用C#实现字符串相似度算法(编辑距离算法 Levenshtein Distance)
- 地图和定位功能的实现-篇幅略大,手机慎入
- c#实现手机短信发送(1)
- 黑马程序员之 C#学习笔记:飞行棋地图二维数组实现方法
- 电子签名的c#实现方法
- C#简单实现发送手机短信
- 第七届 科技节 电子设计大赛 三等奖作品---高分辨率手机屏幕显示系统设计与实现
- C# 使用Free Spire.Presentation 实现对PPT插入、编辑、删除表格
- 信息管理系统开发架构 配置实现列表展示分析图形及编辑等 构建信息分析展示平台 C#快速开发架构
- C#简单实现发送手机短信
- C# PropertyGrid多行编辑实现
- C#开发Android百度地图手机应用程序(多地图展示)
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 用JPUSH极光推送实现服务端向安装了APP应用的手机推送消息(C#服务端接口)