利用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. 《Velocity java开发指南》中文版(上)转载

    文章引自:http://sakyone.iteye.com/blog/524289 1.开始入门 Velocity是一基于java语言的模板引擎,使用这个简单.功能强大的开发工具,可以很容易的将数据对 ...

  2. asp.net中的<%%>形式的详细用法实例讲解

    asp.net中的代码分离模式我们肯定都不陌生,C#(或者其它语言)写的代码一般不会和设计语言HTML混在一起,但是有的时候也避免不了,这时就会在UI页面里用<%%>来绑定显示.绑定变量数 ...

  3. hadoop namenode多次格式化后,导致datanode启动不了

    jps hadoop namenode -format dfs directory : /home/hadoop/dfs --data --current/VERSION #Wed Jul :: CS ...

  4. failure injection

    (1)malloc穷尽的情况: 假设下面的代码是测试代码,里面含有被测函数fmalloc,其中含有一个malloc语句,在一般情况下,是很难走到malloc失败的分支的,因为很难模拟系统内存耗尽的情况 ...

  5. python库tkinter、pygame中几点需要注意的问题

    恍然之间已经16年快四月份了,已经好久都没有写过东西了.. 最近在用python做一些小的游戏,在网上找了一些Python库,Python中游戏编程最常用的还是pygame了,其次是Tkinter p ...

  6. 【原】K3Cloud平台开发之Python插件

    有时候我们的表单可能很简单,只是一个简单交互的表单,但有可能还是要劳师动众的给它建个工程写个插件,是不是很不爽?例如我有如下一个表单: 功能很简单就是选个业务对象,收集绑定几个字段名,然后确定返回一个 ...

  7. MongoDB update数据语法【转】

    在前面的文章“mongodb 查询的语法”里,我介绍了Mongodb的常用查询语法,Mongodb的update操作也有点复杂,我结合自己的使用经验,在这里介绍一下,给用mongodb的朋友看看,也方 ...

  8. javascript日用代码集合(一)

    获取url参数 function get_url_param(name){ var reg = new RegExp("(^|&)" + name + "=([^ ...

  9. iOS图案锁,支持动画、图片、绘图

    最近忙着搭建一个聊天用的框架,过几天应该会整理写出来吧,原理不难,但是实现后会省很多事.好久没写博客,周末心血来潮写了个图案锁,这东西没什么技术含量,网上一堆,这次这个图案锁顺便联系了怎么打包使用.a ...

  10. DJANGO不同应用之间的用户迁移

    因为重新规划新的项目,数据库表结构和以前不一定了,但是想保存以前的很多用户认证方面的东东. 于是看了一下DJANGO的导入导出功能. ~~~~~~~~~~~~~~~~~~~ 数据导入: python ...