C#实现在手机上编辑电子地图
来源:互联网 发布:软件测试专业培训学校 编辑:程序博客网 时间:2024/04/28 15:36
- 一、系统需求:
- 开发环境: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
- 三、实现方法简介
- 首先,简要介绍实现这些功能的基本方法。具体函数说明请参考《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();
- }
- C#实现在手机上编辑电子地图
- 电子地图的瓦片--在IIS上安装TileCache[转]
- 电子地图的瓦片--在IIS上安装TileCache
- 在Android手机程序上实现插件
- 在Visual Graph中实现电子地图的“点”元素
- 怎么样在WEB上实现office在线编辑的功能
- c#实现曲线编辑
- qt实现电子地图
- 当EditText编辑时 hint 在 6.0 手机上显示不出来。。。。
- 当EditText编辑时 hint 在 手机上显示不出
- C#中泛型在Class上的实现
- VB实现在PC上通过手机发短消息
- 在Android手机上实现阅读器的翻页效果
- 在Android手机上实现阅读器的翻页效果
- 实现HTML页面在手机浏览器上全屏的方式
- 在Android手机上实现阅读器的翻页效果
- 在Android手机上实现阅读器的翻页效果
- 在Android手机上实现阅读器的翻页效果
- PB编程,API函数和PB编程绝招
- Win32 API函数大全
- Flex Builder 3.0正式版+破解补丁
- C++虚函数表解析(转)
- CFileFind
- C#实现在手机上编辑电子地图
- PB编程,API函数和PB编程绝招_这是个大贴,学习用[二]
- PowerBuilder被忽略的的技术
- 金额转换,把金额转换成为汉字大写金额!
- 谷歌浏览器的源码分析(32)
- 行为不当(Misbehaving)的子查询
- PowerBuilder编程变量命名规范及开发注意事项
- flash player10 debug for flex
- PB10连接SQL Server的配置