[置顶] 基于MapGIS的GIS二次开发作业文档

时间:2021-02-28 05:41:40

一、系统概述

1、系统简介

系统是在VS2008中利用MapGIS K9提供的组件进行的二次开发。因其主要涉及城市遥感等内容,故将系统命名为:城市遥感信息可视化系统。

2、功能简介

系统主要功能包括:

文档操作:打开地图、关闭地图、保存地图、另存为、打印、打印预览、打印设置、退出系统;

影像操作:打开影像、另存影像、关闭影像、颜色合成、影像信息、原始显示、线性显示、反转显示、平方显示、自适应显示,以及数据预处理、影像分类与处理功能区;

通用工具:距离量算、面积量算、角度量算、修改参数、修改属性、多边形裁剪、区文件裁剪、缓冲区分析、叠加分析;

数据管理:数据库管理、更换工作空间、影像下载、数据导入、影像管理、返回;

城市信息查询:框选、圆选、多边形、按属性、图查属性、开启查询、查看属性、城市基本信息列表;

帮助:帮助文档、关于、在线支持、联系我们;

3、系统界面介绍

系统使用DotNetBar第三方控件进行搭建,借鉴了Office2010的Ribbon风格界面设计。文档管理、专题图管理、属性选择、数据预处理、影像分类与处理模块可以*拖动,任意停靠。以下是系统部分截图:

[置顶]        基于MapGIS的GIS二次开发作业文档

图1:系统欢迎界面

[置顶]        基于MapGIS的GIS二次开发作业文档

图2:系统主界面

[置顶]        基于MapGIS的GIS二次开发作业文档

图3:工具条

[置顶]        基于MapGIS的GIS二次开发作业文档

图4:遥感影像处理功能区


二、  系统环境及功能亮点

1、系统环境

开发平台

MapGIS K9 SP3

开发工具

VS2008、DotNetBar

开发语言

C#

运行环境

Windows 7

数据库

SQL Server 2008

其他(可扩充)

2、功能亮点

1)、系统框架搭建比较健全,功能较为完善。基础地图文档操作、影像操作、数据库管理等都有涉及。

2)、实现Excel数据的导入、导出功能,右键添加影像显示功能,以及实现托盘功能。

3)、系统空间查询功能,包括框选、圆选、图查属性,以及城市信息查询等功能。

4)、影像处理功能区流程化,通过调用工具提供了丰富的遥感影像处理功能。以东昌府区1990年、2000年两期遥感影像为例,进行土地利用类型分类,并以“建筑用地”为例通过叠加分析得到10年间增加和减少的建筑用地面积等信息。

[置顶]        基于MapGIS的GIS二次开发作业文档

图5:空间数据库管理

[置顶]        基于MapGIS的GIS二次开发作业文档

图6:数据导入

[置顶]        基于MapGIS的GIS二次开发作业文档

图7:数据导入代码实现

//城市信息入库
private void btOk_Click(object sender, EventArgs e)
{
if (File.Exists(textBox.Text))
{
progressBar.Value = 2;
DataSet ds = Import.GetExcelData(textBox.Text);
DataTable tb = ds.Tables[0];
progressBar.Value = 5;
string connectionString = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
try
{
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
int rows = tb.Rows.Count;
for (int i = 0; i < rows; i++)
{
cmd.CommandText = "insert into CityInfo (年份,城市名称,行政单位,人口,GDP,备注) values(" + "'" + Convert.ToString(tb.Rows[i][0]) + "'" + "," + "'" + Convert.ToString(tb.Rows[i][1]) + "'" + "," + "'" + Convert.ToString(tb.Rows[i][2]) + "'" + "," + "'" + Convert.ToString(tb.Rows[i][3]) + "'" + "," + "'" + Convert.ToString(tb.Rows[i][4]) + "'" + "," + "'" + Convert.ToString(tb.Rows[i][5]) + "'" + ")";
cmd.ExecuteNonQuery();
progressBar.Value += 1;
}
conn.Close();
MessageBox.Show("导入成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
catch
{
MessageBox.Show("导入失败!请检查格式是否正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.Close();
}
}
else
{
MessageBoxEx.Show("请选择要到入的Excel表", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}


[置顶]        基于MapGIS的GIS二次开发作业文档

图8:城市信息列表及导出

[置顶]        基于MapGIS的GIS二次开发作业文档
图9:影像管理及添加显示
[置顶]        基于MapGIS的GIS二次开发作业文档

图10:影像添加显示

[置顶]        基于MapGIS的GIS二次开发作业文档

图11:影像右键添加显示代码实现

        //添加显示
private void btAddOpen_Click(object sender, EventArgs e)
{
//判断是否有数据
if (rowCount == 0)
{
MessageBox.Show("没有数据,请检查数据库!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
try
{
frMain.MyMapXView.WorkSpace = frMain.MyWorkSpace.ToInterface;
string ImagePath = MydataGridView.SelectedRows[0].Cells[5].Value.ToString().Trim();
mcRasterDataSet RastDataSet = new mcRasterDataSet();
int rtn = RastDataSet.Open(ImagePath, meRasterAccess.meRead);
if (rtn != 0)
{
return;
}
mapXBase.IXMapLayer pMapLayer = null;
mapXBase.XMap pMap = null;
if (frMain.MyWorkSpace.MapCollection == null)
{
frMain.MyWorkSpace.AppendMap("NewMap", out pMap);
pMap.Visible = true;
}
else
{
pMap = frMain.MyWorkSpace.MapCollection.get_Item(0);
}
frMain.MyWorkSpace.AppendClass(RastDataSet, out pMapLayer, pMap);
pMap.ActiveLayer = pMapLayer;

//地图复位
frMain.MyMapXView.Restore();
RastDataSet.Close();
//判断是否继续添加,如否,则关闭当前窗口
DialogResult re = MessageBox.Show("添加显示成功!是否继续添加?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
if (re == DialogResult.No)
{
this.Close();
}
else
{
return;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}

利用东昌府区1990年、2000年两期遥感影像,对土地利用类型进行变化监测。以“建筑用地”为例进行演示。

[置顶]        基于MapGIS的GIS二次开发作业文档

图12:监测处理流程

通过以上监测流程处理后分别得到1990年、2000年东昌府区土地利用类型数据(具体处理步骤详见演示视频-MapGIS,文章结尾处)。

[置顶]        基于MapGIS的GIS二次开发作业文档

图13:1990年分类结果

[置顶]        基于MapGIS的GIS二次开发作业文档

图14:1990年建筑用地区域分布

[置顶]        基于MapGIS的GIS二次开发作业文档

图15:2000年分类结果

[置顶]        基于MapGIS的GIS二次开发作业文档

图16:2000年建筑用地区域分布

[置顶]        基于MapGIS的GIS二次开发作业文档

图17:90-00年间建筑用地增加区域

[置顶]        基于MapGIS的GIS二次开发作业文档

图18:增加区域信息汇总

[置顶]        基于MapGIS的GIS二次开发作业文档

图19:90-00年建筑用地减少区域

[置顶]        基于MapGIS的GIS二次开发作业文档

图20:减少区域信息汇总

说明:通过较为复杂的叠加分析运算还可以得出不同土地利用类型之间的详细转换细节。因演示较为耗时,所以在此不做演示。

[置顶]        基于MapGIS的GIS二次开发作业文档

图21:托盘显示及右键功能

[置顶]        基于MapGIS的GIS二次开发作业文档

图22:系统关于

三、团队分工

本系统所有内容均为本人独立创作(如有雷同,存属意外)。

四、心得体会

此处略去一万字。。。。[置顶]        基于MapGIS的GIS二次开发作业文档

系统视频演示地址:http://v.youku.com/v_show/id_XNTc0OTg0MTAw.html
友情链接(AE文档):http://blog.csdn.net/zxcvbnm32123/article/details/9076921