利用MO 的GeoDataset  、DataConnection  Recordset 进行数据操作

在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);
}
}
}

MapObject shape数据操作的更多相关文章

  1. python数据结构:pandas(2)数据操作

    一.Pandas的数据操作 0.DataFrame的数据结构 1.Series索引操作 (0)Series class Series(base.IndexOpsMixin, generic.NDFra ...

  2. pytorch 数据操作

    数据操作 在深度学习中,我们通常会频繁地对数据进行操作.作为动手学深度学习的基础,本节将介绍如何对内存中的数据进行操作. 在PyTorch中,torch.Tensor是存储和变换数据的主要工具.如果你 ...

  3. StackExchange.Redis帮助类解决方案RedisRepository封装(字符串类型数据操作)

    本文版权归博客园和作者本人共同所有,转载和爬虫请注明原文链接 http://www.cnblogs.com/tdws/tag/NoSql/ 目录 一.基础配置封装 二.String字符串类型数据操作封 ...

  4. hive数据操作

    mdl是数据操作类的语言,包括向数据表加载文件,写查询结果等操作 hive有四种导入数据的方式 >从本地加载数据 LOAD DATA LOCAL INPATH './examples/files ...

  5. Dapper 数据操作框架

    数据操作DapperFrom NuGet:Install-Package DapperorInstall-Package Dapper.StrongName微型ORM:PetaPoco获得PetaPo ...

  6. Django数据操作F和Q、model多对多操作、Django中间件、信号、读数据库里的数据实现分页

    models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称. 外话:django中引 ...

  7. coreData数据操作

    // 1. 建立模型文件// 2. 建立CoreDataStack// 3. 设置AppDelegate 接着 // // CoreDataStack.swift // CoreDataStackDe ...

  8. Entity Framework 5.0系列之数据操作

    Entity Framework将概念模型中定义的实体和关系映射到数据源,利用实体框架可以将数据源返回的数据具体化为对象:跟踪对象所做的更改:并发处理:将对象更改传播到数据源等.今天我们就一起讨论如何 ...

  9. 数据操作语言DML与运算符

    数据操作语言DML(添加,修改,删除) 1.添加数据 insert into insert into 表名 (字段列表) values (值列表),值列表要和字段列表按顺序匹配. insert int ...

随机推荐

  1. Windowsphone 之xml序列化和反序列化的应用(WebService解析返回的数据DataSet )

    关于Xml的序列化和反序列化: 可以看这篇文章,http://www.cnblogs.com/Windows-phone/p/3243575.html WebService解析返回的数据DataSet ...

  2. TCPIP通信

    最近在开发TCPIP通信,封装了3个类,望各位大神指点指点. using System; using System.Collections.Generic; using System.Text; us ...

  3. 不为人知的Locked

    在属性面板上,有一个Locked属性,什么时候添加上去的,真是没有注意到,它的说明为:确定是否可以移动控件或调整控件的大小,默认是为false的,设置为true以后,当前选中的控件会在左上角出现一个锁 ...

  4. 好用的自适应表格插件-bootstrap table (支持固定表头)

    最近工作中找到了一款十分好用的表格插件,不但支持分页,样式,搜索,事件等等表格插件常有的功能外,最主要的就是他自带的冻结表头功能,让开发制作表格十分容易,不过网上大多都是英文文档,第一次使用会比较麻烦 ...

  5. 【C语言】中的stdbool.h头文件

    C语言中的stdbool.h头文件 一.相关基础知识 二.具体内容 Win7下安装的VS2015中的stdbool.h的位置为: F:\Program Files (x86)\Microsoft Vi ...

  6. 将小度WiFi改造为无线网卡(小度WiFi能够接收WiFi信号)

    安装官方的小度WiFi的驱动器,只能让它当做无线信号的发射装置,但是我想通过小度WiFi让我的台式电脑能都接收无线信号,于是经过一番折腾终于成功了.我的是win7. 小度WiFi无法接受无线信号,不能 ...

  7. ZeroBraneStudio之支持GBK文件编码

    费了好大劲终于搞定了让ZBS支持打开GBK文件了.记录下过程: 看源码发现ZBS打开文件时会调用src\editor\commands.lua中的LoadFile函数,代码如下: local file ...

  8. Keras如何构造简单的CNN网络

    1. 导入各种模块 基本形式为: import 模块名 from 某个文件 import 某个模块 2. 导入数据(以两类分类问题为例,即numClass = 2) 训练集数据data 可以看到,da ...

  9. Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,htm

    Ireport 报表导出 Poi + ireport 导出pdf, doc ,excel ,html 格式 下面是报表导出工具类reportExportUtils 需要导出以上格式的报表 只需要调用本 ...

  10. innodb_buffer_pool_instances and innodb_buffer_pool_size的关系

    把buffer pool 分成一个用户指定的单独的区域, 每个有它自己的LRU list和相关的数据结构, 降低竞争在并发内存读取和写操作. 这个选项只有当innodb_buffer_pool_siz ...