MapObject shape数据操作 一
2013-07-07 19:38
501 查看
利用MO 的GeoDataset 、DataConnection Recordset 进行数据操作
在MO中。使用GeoDataset对象和DataConnection 对象来连接和读取地理数据。
GeoDataset: 是表达一个图层的地利数据的对象
DatasetConnection对象指定一个和地理数据文件的连接,用Database 属性表示数据文件的地址。
Recordset 是Geodataset的记录集合或者查询后的数据集合
下面给一段 他们的使用 主要用于加载shp数据集并通过遍历获取线的每个节点
在MO中。使用GeoDataset对象和DataConnection 对象来连接和读取地理数据。
GeoDataset: 是表达一个图层的地利数据的对象
DatasetConnection对象指定一个和地理数据文件的连接,用Database 属性表示数据文件的地址。
Recordset 是Geodataset的记录集合或者查询后的数据集合
下面给一段 他们的使用 主要用于加载shp数据集并通过遍历获取线的每个节点
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using MapObjects2; namespace mo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public MapObjects2.MapLayer AddShape(string basepath, string fileName, bool mHasMeasure) { DataConnection dCon = new DataConnection(); GeoDataset gSet; mHasMeasure = false; dCon.Database = basepath; if (dCon.Connect()) { gSet = dCon.FindGeoDataset(fileName); if (gSet == null) { MessageBox.Show("打开shape文件异常"); return null; } else { MapLayer newLayer = new MapLayer(); newLayer.GeoDataset = gSet; mHasMeasure = gSet.HasMeasure; dCon = null; gSet = null; MessageBox.Show(newLayer.Records.Count.ToString()); return newLayer; } } else { dCon = null; gSet = null; return null; } } private void Form1_Load(object sender, EventArgs e) { } // h获取 图层中的每个节点 public void getLine(string mPath, string Name,bool fea) { Application.DoEvents(); string txt = null; MapObjects2.MapLayer mLay; MapObjects2.Recordset mrec; Line mline = new Line(); MapObjects2.Point mpt = new MapObjects2.Point(); ; mLay = AddShape(mPath, Name, false); mrec = mLay.Records; do { //从第一条数据开始处理 //MessageBox.Show(mrec.Fields.Item("shape").); mline = mrec.Fields.Item("shape").Value ; MessageBox.Show(mline.Parts.Count.ToString()); String mlxdm = mrec.Fields.Item("roadcode").Value.ToString(); MessageBox.Show(mlxdm); if (mline.Parts.Count < 1) { MessageBox.Show("line is nothing"); break; } for (int i = 0; i < mline.Parts.Count; i++) { MapObjects2.Points pt= mline.Parts.Item(i) as MapObjects2.Points; for (int j = 0; j < pt.Count;j++ ) { richTextBox1.Text = "x=" + pt.Item(j).X.ToString() + " y=" + pt.Item(j).Y.ToString() + " z=" + pt.Item(j).Z.ToString() + "\n" +richTextBox1.Text ; //MessageBox.Show("x=" + pt.Item(i).X.ToString() + " y=" + pt.Item(i).Y.ToString() + " z=" + pt.Item(i).Z.ToString()); // MessageBox.Show( pt.ToString()); } } mrec.MoveNext(); } while (!mrec.EOF); } private void button1_Click(object sender, EventArgs e) { getLine(Application.StartupPath + "\\layerdata", "nmg_route", true); } } }
相关文章推荐
- struts2 action 内 map 类型的 session 存入和提取 object 数据操作及处理
- ArcGIS操作——object name is not a regular identifier for underlaying DBMS[ArcGIS企业级数据导入错误]
- mybatis以map的方式批量插入list集合数据操作步骤
- hive之Python UDF函数操作map数据 详解 全是干货
- 集合(二)Map操作数据、Map、HashMap
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- Map排序,获取map的第一值,根据value取key等操作(数据预处理)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- 多线程操作stl::map引起的数据不一致问题的解决过程与方法
- redis的API对String、object、List、Map、Hash常用操作
- 在ASP.NET 2.0中操作数据之六十:创建一个自定义的Database-Driven Site Map Provider
- [Java Web]ibatis使用queryForMap实现数据查找等操作
- ObjectInputStream和ObjectOutputStream的用法(Map数据读取和写入)
- 在ASP.NET 2.0中操作数据之六十:创建一个自定义的Database-Driven Site Map Provider
- Stack 类的操作,将Stack中的数据添加到Map里面
- 云星数据---Scala实战系列(精品版)】:Scala入门教程045-Scala实战源码-Scala Map操作
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- [Android]JSON数据传输出错——JSONObject将对象数据(Map,List)当成字符串处理
- 操作Map<Long,List<Object>>爆发的错误