组件式GIS二次开发共40页文档
ArcObjects组件在地理信息系统二次开发中的应用
ArcObjects组件在地理信息系统二次开发中的应用张正祥,张洪岩(东北师范大学城市与环境科学学院中国东北区域开发信息工程实验室,长春130024)摘要:介绍了面向对象技术的ArcObjects组件的层次、编码技术和进行二次开发的方法,并基于该组件提供的完备的空间数据处理、分析、显示等功能,利用可视化开发工具,进行了校园信息系统的开发实践。
组件式二次开发是当今地理信息系统的一个新的研究领域。
关键词:二次开发;ArcObjects;定制;嵌入式开发;独立应用程序中图分类号:P208 文献标识码:A 文章编号:1000-3177(2004)74-0046-04 地理信息系统是一个采集、存储、管理、分析、显示和应用地理信息的计算机系统,是处理、分析和应用海量地理数据的交叉学科。
地理信息系统已经被广泛应用于城市规划、国土资源调查与管理、环境监测与分析、公安消防预警、交通与安全管理、配电网管理等方面。
然而,各种GIS软件在提供了强大的处理和分析空间数据的功能的同时,还涉及复杂的GIS算法和数据模型。
普通用户除了要熟悉自己的业务外,还必须为这些复杂的操作所烦恼,这给GIS的普及带来很大的难度。
GIS技术的二次开发是解决这一艰巨任务的途径。
1 组件技术与地理信息系统组件式对象模型(COM)不是一种面向对象的语言,而是一种二进制标准,其作用是使各种软件组件和应用软件能够用一种统一的标准方式进行交互,而建立在组件基础上的应用程序几乎不用修改,大大提高了代码的应用性。
组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。
各个GIS控件之间,以及GIS控件与其他非GIS控件之间,可以方便地通过可视化软件开发工具集成起来,形成最终的GIS应用。
一些GIS软件公司纷纷推出了基于COM技术,由一系列ActiveX 控件组成的GIS二次开发软件环境。
这些软件具有以下主要优点:(1)小巧灵活、价格便宜;(2)无须专门的GIS开发语言;(3)强大的GIS功能;(4)面向大众,扩展领域。
GIS二次开发使用PPT教案
Class flyBird inherit from Bird{ String Name; Publice fly { … }
}
第15页/共45页
在OOP中,继承的概念很好的支持了代码的重用 性(reusability),也就是说,我们可以向一 个已经存在的类中添加新的特性,而不必改变 这个类。这可以通过从这个已存在的类派生一 个新类来实现。这个新的类将具有原来那个类 的特性,以及新的特性。而继承机制的魅力和 强大就在于它允许程序员利用已经存在的类 (接近需要,而不是完全符合需要的类),并 且可以以某种方式修改这个类,而不会影响其 它的东西。
第23页/共45页
第24页/共45页
DCOM
基于分布式环境下的COM被称作 DCOM(Distribute COM,分布式组件对象模 型)。
DCOM是ActiveX的基础,它实现了COM对象 与远程计算机上的另一个对象之间直接进 行交互。
第25页/共45页
ActiveX与ActiveX控件
第26页/共45页
ActiveX的内容
ActiveX控件(ActiveX Control):
用于向WEB页面、Microsoft Word等支持 ActiveX 技术的容器(Container)中插入 COM对象;
ActiveX文档(ActiveX Document):
用于在Web Browser或者其它支持ActiveX的 容器中浏览复合文档(非HTML文档),例如 Microsoft Word文档、Microsoft Excel文 档或者用户自定义的文档等
第27页/共45页
ActiveX的内容
ActiveX脚本-(ActiveX Scripting)
GIS二次开发程序设计
成绩批阅日期重庆交通大学测量与空间信息处理实验报告实验课程:GIS二次开发程序设计实验名称: GIS二次开发班级:学号:姓名:实验日期: 2012 年 6 月 25 日实验一界面设计一、实验目的和要求1、学会对MO进行安装。
2、熟悉Visual Basic和Map Object程序的基本操作。
3、掌握toolbar的操作步骤。
4、设置GIS二次开发的界面,要求界面具有菜单、工具条及设计程序时用到的各种控件等。
二、实验内容1、利用Visual Basic相应控件和操作以及Map Object完成界面设计,运用所安装的MO的控件进行所需界面设计。
2、在设计的界面上一次添加菜单、工具条、图例控件、map控件、状态栏等,并熟练掌握其操作步骤。
三、实验步骤1、在有MO和VB的环境中进行所设计的界面设计。
1)菜单的设计。
要求具有一些常用的功能。
如下图所示:2、对toolbar进行设计。
在菜单栏下面进行插入Button按钮,并在按钮上插入相应图像。
步骤如下图:3、插入map、legend、status等控件,并调整其大小。
得到最后成果图如下图所示:四、实验总结4.1、实验中遇到的困难在进行界面设计时,会遇到一些意想不到的困难,比如在插入toolbar 中的Button时,如果没有加入imagelist控件时,就不能在Button上插入图像。
还有在进行菜单操作时,有时会因为空格运行不当,而不能得到理想的下拉菜单。
4.2、处理方法和技巧在进行设计时,一定要记住操作的先后顺序,不然不能不到效果。
插入map 和legend等控件时,适当调节其大小,使界面更美观。
4.3、经验体会和收获刚开始做实验时感觉好难,不知怎么下手,可在完成这几次实验后我熟悉了MO的最基本功能,发现用VB对GIS进行二次开发没有想象中的那么难,但关于控件的问题很多,而且大家都不是很懂,只能多多交流,从网上搜素相关资料。
现如今地理信息系统的应用越来越广发,对它进行二次开发可以更大的发挥此软件的功能。
《GIS二次开发》课程设计报告
《GIS二次开发课程设计》报告目录1 设计目标 (1)2 需求分析 (1)2.1 业务构成... .. (1)2.2 数据内容... .. (1)3 系统设计 (1)3.1 总体设计 (1)3.2 数据库设计 (2)3.3 平台选择 (2)3.4 详细设计 (2)4 功能实现 (3)4.1 基本功能 (3)4.2 符号化 (3)小结 ............................. 错误!未定义书签。
1 设计目标通过本系统的实施,建立全国各省人口分布和人均GDP排名系统,通过各种地图符号和色彩信息,将地图数据符号化,借此来制作全国各省人口比重、贫富差距大小等专题图。
2 需求分析2.1 业务构成中国人口在世界各国中位居首位,约占世界总人口的19%,根据2015年1月20日国家统计局网站公布2014年中国经济数据,2014年末,中国大陆总人口达136782万人,比上年末增加710万人。
其中,男性人口70079万人,女性人口66703万人,男性人口比女性多3376万人。
中国是人口大国,因此中国的人口分布情况和人口管理显得至关重要。
随着经济的发展,中国的经济状况日益增强。
但是整体而言贫富差距还是很大,所以将地图数据符号化来更好地分析各地区的人均GDP对国家掌控各地经济情况是十分有用的。
2.2 数据内容数据主要包括全国各省的人口数量、总的GDP和人均GDP。
通过这些数据来处理地图,将地图做成不同属性的专题图。
3 系统设计3.1 总体设计此次设计的初衷即是开发一个可以制作专题地图的系统。
以全国人口数量和全国各省人均GDP为例进行制作和开发。
第一步就是找全国省区底图;接着找所需数据(全国各省人口数量和全国各省人均GDP。
)最后,通过VS设计系统,实现专题图制作功能。
3.2 数据库设计刚开始是想将找到的数据以表格的形式导入arccatalog中,希望经过处理可以直接使用,但是做到最后发现并不能将表格直接导入底图。
GIS地理信息系统二次开发
1 gis软件技术经理了五个阶段:集成式GIS、模块式GIS、核心式GIS、组件式GIS、万维网GIS2 gis由4个要素组成:硬件、软件、数据、人员3 gis分为工具性软件(GIS二次开发平台、am/fm专用开发平台软件、其他工具性软件)应用型软件(制图软件、资源调查、信息管理、空间分析与预测)4 gis用户分为:最终用户、GIS专业人员、GIS开发商/系统集成商5 gis自身的特点:(1)GIS处理的是空间数据,具有数据量庞大、实体种类繁多、实体间的关联复杂等特点(2)GIS设计以空间数据为驱动(3)GIS工程投资大、周期长、风险大、涉及部门繁多6 gisS设计的理论思想:GIS工程学思想7GIS工程学体系主要由任务(运用系统论的理论和方法实现GIS工程的最优设计、最优管理和最有运行,以求得到系统总体的最优化)、基础理论(系统学、地理信息科学、系统工程学)和方法论组成8地理信息科学是研究地球信息的本质和运动规律的一门学科,其研究对象是地理信息。
他通过对地理信息技术中的一般性问题和规律性问题进行研究,对GIS工程学提供指导。
9 地理信息科学体系划分为三个层次:;理论地理信息科学、市局地理信息科学和应用地理信息科学10gis设计与一般信息系统设计的差异:设计重心(GIS处理的是海量空间数据,数据库设计在GIS设计中尤其重要,一般系统设计的中心是软件功能)数据库建设(gis不仅要进行属性数据库的设计,更要进行空间数据库的设计,包括空间数据结构、存储方式、管理机制。
而一般的只需要建立属性数据库)设计方法(GIS以业务需求为导向、异空间数据为驱动进行系统设计,而一般的以业务需求为导向,以功能为驱动进行系统设计)11gis设计包括软件设计和数据库设计12 实现地理信息资源共享,必须具备:(啊)数据资源储备(2)有技术支撑系统的保障(3)共享规则的制定,被广泛采纳和遵循13标准化是空间信息共享和系统集成的重要前提,也是GIS产业化和社会化的必经之路。
03.MapGIS VirtualEarth二次开发技术篇
MAPGIS VirtualEarth 二次开发技术篇目录目录..............................................................................................................................................- 2 -1 概述..............................................................................................................................- 3 -2 开发环境介绍..............................................................................................................-3 -2.1开发环境................................................................................................................- 3 -2.2开发软件---Eclipse................................................................................................- 4 -3 MAPGIS VirtualEarth二次开发技术........................................................................- 14 -3.1 JavaScript脚本语言.............................................................................................- 14 -3.2 Java语言...............................................................................................................- 16 -3.3 HTML语言..........................................................................................................- 18 -3.4 JSP技术................................................................................................................- 19 -3.5 数据库(SQL Server/Oracle)..........................................................................- 20 -3.6 XML语言.............................................................................................................- 21 -1 概述MAPGIS VirtualEarth是中地数码拥有自主产权的一套显示三维地球的软件,它依托MapGIS平台为基础,基于Java applet技术和JOGL技术开发。
组件式GIS二次开发
4.9 属性查询
.SearchByDistance()函数的用法
Set variable = object.SearchByDistance( shape, tolerance, expression) .
FlashShape()函数的用法 object.FlashShape shape, nTimes MXFlexGrid控件的使用
注意!
在将对象的引用赋给变量、数据类型的元 素或可写对象的属性时,须使用关键字 “set”; 在创建对象类的实例时,须使用关键字 “new”。
4.2地图放大、缩小、漫游等操作
Map1.Extent Map1.pan set map1.extent = map1.fullextent
4.3 打开影像文件
4. 功能的实现
4.1.打开shp文件
1)学会使用CommonDialog控件 2)学会简单错误处处理方法
3)学会从全路径中截取文件名称的方法
4)学会从全路径中截取目录的方法
学会 .DataConnection 的定义和使用方法 学会.Database的定义和使用方法 学会.GeoDataset的定义和使用方法 学会.FindGeoDataset的定义和使用方法 学会.Layers.Add的定义和使用方法
3.2 Shp文件
ESRI Shapefiles use a simple, nontopological format for storing the geometric location and attribute information of geographic features.
ShapeFile文件通常包含三个文 件:.shp .shx .dbf,.shp存储了图元图形坐标数据,.dbf 存储了图元属性数据,.shx存储了每个图元记录在.shp文件 中的位置。同时.shp .shx .dbf记录顺序是一致的。在GIS 中,总体上有两种类别的查询: 图元查属性,就是通过对图元.shp文件的查询,定位到 对应的.dbf属性数据记录。而对.shp的查询,需要对图形建 立空间索引,以便加速图元查找的速度。确定需要查找的图 元在.shp中的记录位置,以确定是第多少条记录,由于三文 件记录顺序是一致的,同时.dbf记录是等长的,可以迅速通 过计算得到对应的图元属性数据所在的位置,读取属性数据 即可。
GIS二次开发7
4.2.3 地理坐标系, 投影坐标系
投影对象关系图
地理坐标系:
MapObjects2.GeoCoordSys
地理坐标系使用基于经 纬度坐标的坐标系统描 述地球上某一点所处的 位置。某一个地理坐标 系是基于一个基准面来 定义的, 在MO中有对 应的属性Datum与之对 应。经度为0的经线称 为本初子午线, 在MO 中是由相应的属性 PrimeMeridian来定义
MO预定义了296种基准面
moDatum_Beijing1954
6214
moDatum_WGS1984
6326
Beijing 1954 WGS 1984
基准面是利用特定椭球体对特定地区地球表面的逼近, 因此每 个国家或地区均有各自的基准面, 我们通常称谓的北京54坐标 系、西安80坐标系实际上指的是我国的两个大地基准面。
moProjection_TransverseMercator 43006 Transverse Mercator = 4300
MapObjects2.Projection对象
属性: Name :String Type:ProjectionConstants Custom :Unknow IsCustom: Boolean
4.1.2 地图坐标(Map Coordinate)
图层数据采用地图坐标系。遵循笛卡尔坐 标系原则。 不同于Visual Basic窗体的控件坐标系( 左上角永远是0,0)地图控件内显示的地 图坐标范围, 时常在应用期间改变。 每 次当你移动某一地图区时, Map控件内地 图坐标范围就会变化。
控件坐标与地图坐标间的区别:
4.
对象MapObjects2.Strings
4.2.1 球坐标系与平面坐标系
GIS二次开发
《GIS二次开发技术-ArcEngine10.1》课间实验报告实验1 ArcEngine开发环境搭建及入门程序姓名:学号班级:专业级班指导教师:实验日期:测量与空间信息处理实验实验1 ArcEngine10.1开发环境搭建及入门程序目录1、实验目的和要求 (1)1.1 实验目的 (1)1.2 实验报告要求 (1)2、实验准备 (1)3、实验内容及原理 (1)3.1 实验内容 (1)3.2 实验知识预备 (1)4、实验步骤 (2)5、实验结果 (8)6、实验思考及体会............. 错误!未定义书签。
实验1 ArcEngine10.X开发环境搭建及入门程序1、实验目的和要求1.1 实验目的掌握ArcEngine和Microsoft Visual Studio 2010的基本操作,以及做一个简单的软件。
1.2 实验报告要求介绍实验目的、软件、硬件和实验内容。
主要详细地描述操作过程,并截图记录。
试验完成后写下实验中遇到的困难或者实验心得体会。
2、实验准备(1)软件准备:ArcEngine、Microsoft Visual Studio 2010。
(2)硬件准备:台式电脑。
(3)测试数据准备:地图左地图文档(MXD)。
3、实验内容及原理3.1 实验内容用ArcEngine和Microsoft Visual Studio 2010做一个小软件。
里面有常规的控件,以及菜单栏和工具栏等。
3.2 实验知识预备大致步骤就是先建窗体,然后再在窗体上添加相关控件,然后再绑定相关控件,之后添加一些常用的工具,最后加载一幅图,运行即可。
4、实验步骤4.1启动Visual Studio 2010,从“新建项目”对话框中创建一个新的Visual C# “Windows窗体应用程序”项目。
并将项目命名为“ArcEngineView”,选择“位置”保存此项目。
以便文件夹的查找,和此程序功能的识别。
图1 新建项目4.2添加ArcGIS Engine相关的引用,选择.Net框架下的相关类库。
ArcGIS Engine二次开发文档
1.1简单的A rcGIS Engine地图显示程序这个例子将引导您创建第一个简单的地图显示程序,并添加基本的缩放和漫游功能。
并介绍MapControl、ToolbarControl、TOCControl的应用,1.1.1创建一个新的工程首先打开Microsoft Visual Studio 2010,点击菜单栏中的“文件”—>“新建”—>“项目”,在弹出的对话框中选择新建一个Visual C#的Windows应用程序,之后更改项目名称为“地图浏览”,更改文件的路径为个人实习文件夹,点击“确定”即可。
图1新建项目对话框选中项目“地图浏览”中的窗体“Form1”,修改其Name属性为“MainForm”,Text 属性为“地图浏览”,图2窗体命名1.1.2添加控件及引用点击编译器最左侧的“工具箱”(不存在时可通过“视图”“工具箱”打开),在弹出的选择项中找到“ArcGIS Windows Forms”项,单击其中的MapControl,之后在Form1的空白处单击鼠标左键不放并拖拽鼠标,直到调整MapControl到合适的大小再松开鼠标(您也可以直接在工具箱中双击MapControl,该控件则会自动加入到Form1中)。
用同样的方法,再将LicenseControl添加到Form1中。
图 3 打开工具箱图4工具箱如果您在工具箱中找不到MapControl,则请依次尝试以下两种解决方案。
首先单击工具栏,待工具箱弹出之后,在工具箱的任意位置上单击鼠标右键,从弹出菜单中选择“重置工具箱”。
如果这一步操作之后仍然无法看到MapControl,则在工具箱的任意位置上单击鼠标右键,找到“常规”选项卡,然后在“常规”选项卡上单击鼠标右键,在弹出菜单中单击“选择项(I)…”,在弹出的对话框中选择“.NET Framework组件”,找到“LicenseControl”和“MapControl”,将这两项前的复选框打上勾,最后点击确定即可(如果在“.NET Framework 组件”这个面板中找不到这两项,则选择“COM 组件”面板,在“ESRI LicenseControl”和“ESRI MapControl”前面打勾)。
GIS二次开发
《GIS二次开发》课程课间实验报告实验项目:基于Arcengine10.1开发环境搭建及入门程序姓名:吴静学号631201040229班级:测绘工程专业2012级 2 班指导教师:刘国栋学习日期:2015年05月21日测量与空间信息处理实验一、实验内容 (1)二、实验目的 (1)三、软件平台 (1)四、实验步骤 (1)4.1打开Visual Studio 2010并创建应用程序项目 (1)4.2添加ArcEngine相关的引用z (2)4.3了解工具箱的控件 (2)4.4添加控件至窗体 (3)4.4.1 MenuStrip菜单栏 (3)4.4.2 ToolBarControl工具栏 (4)4.4.3 StatusSrtip状态栏 (5)4.4.4 TOCControl与MapControl (5)4.4.5 AxLicenseControl控件 (5)4.5 编辑控件属性 (5)4.5.1 ToolbarControl属性设置 (6)4.5.2 TOCControl属性设置 (6)4.5.3 MapControl属性设置 (6)4.5.4配置license (7)4.6检查license (7)4.7运行应用程序 (8)五、实验小结 (8)一、实验内容运用Visual Studio 2010 创建出一个类似于ARCMAP主界面的桌面应用程序二、实验目的2.1熟悉Visual Studio 的工作环境,学会建立工作项目;2.2通过对控件的添加,熟悉和掌握ArcEngine中各控件的作用;2.3对空间的属性进行变化,从而进一步了解可视化的意义。
三、软件平台Visual Studio 2010(包含ArcEngine 10.1的相关控件)四、实验步骤4.1打开Visual Studio 2010并创建应用程序项目首先打开Visual Studio 2010,选择Visual C#编程语言,创建一个Windows 窗体应用程序项目,如图4-1所示:图一创建Visual C#的Windows窗体应用程序4.2添加ArcEngine相关的引用z在菜单栏中选择“项目”,再选择“添加引用”,再在弹出的添加引用窗口中选择“.NET”,找到ESRI相关组件,选中并确定,即完成ArcEngine 10.1的相关组件在Visual Studio 2010中的添加。
组件式GIS二次开发 丁利旺
南阳师范学院本科学生实验报告姓名丁利旺院(系)环境科学与旅游学院专业地理信息科学班级13级4班实验课程名称组件式GIS二次开发指导教师及职称李丹开课时间2015至2016 学年一学期南阳师范学院教务处编印实验名称目录实验一:ArcGIS Engine及Visual Studio 2010开发环境设置实验二:地图显示与浏览实验三:地图数据加载实验四:地图数据访问实验五:地图制图及输出实验六:空间数据查询学生姓名:专业:班级:课程名称:组件式GIS 二次开发实验名称:ArcGIS Engine及Visual Studio 2010开发环境设置实验编号:No 1指导教师:李丹实验地点:逸夫楼6楼机房1实验时间:小组合作:是()否(√)小组成员:实验目的:掌握ArcGIS Engine软件和Visual Studio 2010软件的安装方法,能够完成开发环境的配置。
实验设备:普通PC实验内容及步骤:(可插入图片)(1)安装Visual Studio 2010选择Visual Studio 2010安装程序文件夹中的Setup.exe,在弹出的对话框中选择“安装Microsoft Visual Studio 2010”。
在弹出的安装向导中单击“下一步”。
在显示的界面中选中“我已阅读并接受条款”,然后单击下一步。
在显示界面的左侧面板中选择“自定义”,可以改变默认的安装路径。
在安装组件选择的界面中根据实际情况选择需要安装的组件,确保Visual C#被选中,然后点击安装开始整个安装过程。
等待整个安装过程的完成。
安装完成后,点击完成结束整个安装过程。
在开始菜单中或桌面选择运行Visual Studio 2010。
第一次运行Visual Studio 2010,需要选择默认环境设置。
选择“Visual C# 开发设置”,然后点击“启动Visual Studio”。
显示的界面即是Visual Studio 2010集成开发环境。
GIS二次开发
• TrackCancel: ITrackCancel
• 使用TrackCancel对象提供用户按下ESC戒空格键来中止绘制地图的 能力
• VisibleRegion: Igeometry
• 通过几何对象设定地图的可见范围,叧有落在该几何对象区域内的图 的局部才显示出来.
• Rotation: Double
• 确定地图被旋转的角度
• ShowMapTips:bool
• 设置地图提示是否显示,地图提示文档来自 IActiveView::TipText 属性
• ShowScrollbars:bool
• 确定是否显示地图控件的滚动轴
• SpatialReference: ISpatialReference
• 获取戒设置地图控件的鼠标指针样式
• Object: Object
• 在某些开发环境下,因为控件被包含在一个封装的对象中,因此丌 支持基于控件其它COM接口的的查询。 在这种情况下使用Object .
• ReferenceScale:Double
• 以分数表示的参考比例尺,是指向 IMap::ReferenceScale的快捷 方式,地图中的符号戒文本的尺寸不此关联。
• C#
• IGeometry geometry = point; // 这是一种隐式的数据转换 • IGeometry geometry = point as IGeometry; // 是作为一种操作。
接口转换Casting
• Casting in C#
在 C#, 实现接口强制转换的最好方式是使用”as” 操作符. 相对于 直接转换,使用“as”操作符是比较好的实现策略,因为在转换失败 后得到的是一个NULL值,而丌是产生一个异常。 比较以下代码:第一种方式使用的是直接转换,如果你已经确定某对 象实现了某两个接口,则可以使用这种方式,但是,假如对象并没有 实现你希望转换的接口,.NET会引发一个异常。 比较安全的方法是使用”AS“ 操作符,如果对象丌能返回对希望的 接口的一个引用则会返回一个NULL值,而丌是引发异常。
GIS二次开发实验指导书
GIS二次开发实验指导书GIS二次开发课程实验介绍地理信息系统开发主要有三种模式:独立开发:完全从底层开始,不依赖于任何GIS工具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选择某种程序设计语言,按照软件工程的步骤完成系统的开发。
这种开发模式适于开发商品化的GIS软件平台,但其难度大、开发周期长、投资大,不适宜于一般的开发用户。
组件地理信息系统在可视化开发环境(如VB、VC++、DelPhi等)下,将GIS控件(如ESRI的MapObject、MapInfo的MapX等)嵌入用户应用程序中,实现一般GIS功能,在同一环境下利用开发语言实现专业应用功能。
该模式可缩短程序开发周期,程序易于移植、便于维护,是目前GIS开发的主流。
单纯的二次开发基于国内外先进的GIS平台,利用其提供的二次开发语言进行开发,如Arc/Info提供的AML语言、ArcView提供的Avenue、MapInfo 提供的MapBasic等,开发出具有特定应用功能的的地理信息系统。
该开发模式简单易行,有很多功能可以直接从原有的平台软件中引用过来,但其移植性差,受开发平台的影响,不能脱离原系统单独运行。
GIS二次开发实验项目根据GIS二次开发教学大纲制订,旨在通过一系列实验巩固所学内容,掌握一定软件环境下GIS二次的方法,为课程设计、毕业设计打下坚实的实践基础。
由于课程学时的限制,本课程实验只应用单纯二次开发和组件式二次开发两种开发模式。
单纯二次开发以ArcView GIS为软件环境,组件式二次开发以MapObject+VB(或VC)为开发环境。
本课程实验学时为10个学时,ArcView GIS二次开发通过三个系列实验(6个学时),完成一个功能简单的基于GIS的河南理工大学南校区校园信息查询系统。
MapObject二次开发通过两个实验(4个学时),完成一个功能简单的基于GIS的焦作市公交信息。
GIS二次开发平台简介
MO允许定制利用制图和GIS组件的应用程序,它的特点包括:支持广泛的数据格式;支持ODBC和ADO访问数据库表格数据源;支持扩展的图形数据及操作;支持投影;增强的GPS管理功能;空间分析功能;提供了ArcExplorer组件源代码;支持ArcIMS;支持数据库版本管理。
MO对地图数据的组织方式概念清晰,易于理解。一个综合性的地图由多个图层构成,图层数据来源广泛。对于矢量图层,其内部统一用记录集来表达,抹平了各种不同格式数据间在内存中的表达鸿沟,简化了程序员的数据观点。记录集就像关系数据库中的二维表,行表示每个要素,列表示每个属性,如果含有名称为“Shape”的列,则该记录集表示的是地
iveX是微软公司的组件技术标准,是对象链接与嵌入(OLE)的扩展,它使OLE接口加强了对数据和特性的管理,而且便于进行Internet互操作。
ActiveX控件是建立在COM标准之上的独立的软件元件,提供给用户应用接口,发送相应的事件,开发者则可以截取这些事件,执行相应的功能。
目前基本的组件地理信息系统开发都是通过第三方提供的ActiveX控件(通常为.ocx或.dll文件)来在开发环境中进行集成开发,组件技术可以使程序设计变得简单、高效,去掉了大量代码重复编写的繁琐性,提高了代码的重复使用性,增强系统的可扩展性、可伸缩性和可移植性,加强了系统实用性和维护性。
地理信息系统二次开发平台简介
地理信息系统二次开发平台以MO等组件式开发技术为主下面为大家简单介绍一下MO组件技术。
1. MO简介
MapObjects(简称MO),是由美国ESRI开发的,一组供应用开发人员使用的GIS功能ActiveX控件,它包括一个名为Map的ActiveX控件(OCX)和一组(四十多个)ActiveX自动化对象。它适用于工业化标准程序环境,如Visual Basic,Delphi,C++Builder,PowerBuilder与MS Access等,利用它可灵活的建立适合用户的地图接口,且开发费用小。
[转]GIS二次开发(C#+AE)
[转]GIS⼆次开发(C#+AE)乘风莫邪原⽂此过程描述了使⽤ArcGIS控件建⽴和部署应⽤的⽅法和步骤。
你可以在下⾯的⽬录下找到相应的样例程序:<</FONT>安装⽬录>/DeveloperKit/Samples/Developer_Guide_Scenarios/ArcGIS_Engine/Building_an_ArcGIS_Control_Application/Map_Viewer注:ArcGIS样例程序不包含在ArcGIS Engine开发⼯具包“典型”安装⽅式中。
如果你没有安装它们,则可以重新运⾏开发⼯具包安装向导,选择“定制”或“修改”⽅式,并选择软件开发包下的样例项进⾏安装。
⼀、项⽬描述利⽤视窗控件建⽴应⽤程序的⽬标是演⽰并使你熟悉在微软Visual Studio .NET API中使⽤标准ArcGIS控件开发和部署GIS应⽤所需的步聚。
本节中使⽤了Visual Studio .NET开发环境中的MapControl、 PageLayoutControl、TOCControl和ToolbarControl等视窗控件。
COM、Java和C++程序员应该参考如下章节:、、和。
本节演⽰了创建查看ArcMap和ArcGIS桌⾯应⽤图形⽂档的GIS应⽤程序的步骤。
此节包含了以下技术:l 在微软Visual Studio .NET中加载和嵌⼊ArcGIS控件。
l 向PageLayoutControl和MapControl中加载图形⽂档。
l 设置ToolbarControl和TOCControl的绑定控件。
l 处理窗⼝缩放。
l 向ToolbarControl添加ArcGIS Engine命令和⼯具。
l 创建弹出式菜单l 在TOCControl中管理标签编辑l 在MapControl中绘制图形。
l 为MapControl、PageLayoutControl和ToolbarControl创建定制⼯具。
实验6:GIS二次开发
实验五:GIS二次开发一、实验目的1.了解GIS二次开发的基本原理与方法;2.掌握ArcObjects二次开发的基本方法。
二、实验准备1.软件准备:Visual C++6.0,ArcGIS 9.0(ArcObjects)2.资料准备:ArcTutor(空间数据或数字化数据)三、实验步骤1.建立应用程序框架(1)启动Visual C++6.0。
(2)从“File”菜单选择“New”命令(或按Ctrl+N键),弹出“New”对话框。
(3)切换到“Project”选项卡。
(4)在“Project name”中,选取AppWizard MFC(exe),在文本框键入项目的名字,如“AoEx”。
MFC AppWizard根据所键入的项目名字自动生成相应的项目文件和框架类,并在根文件夹下创建以该名字命名的子文件夹,子文件夹中包含初始项目文件。
(5)在“Location”文本框键入用于存放项目的根目录,如“D:\GIS_EX”,或点击文本框后的按钮进行选择。
(6)单击“OK”按钮,弹出MFC AppWizard –Step1 of 6对话框,选择Single documeut (单文档,单文档界面(SDI)一次只允许打开一个文档边框窗口)。
(7)单击“Next”按钮,弹出MFC AppWizard – Step 2 of 6对话框,选择None(该选项不支持任何ODBC库)。
(8)单击“Next”按钮,弹出MFC AppWizard – Step3 of 6对话框,选择“None”选项(表示不带ActiveX支持)。
(9)单击“Next”按钮,弹出MFC AppWizard – Step4 of 6对话框,从中可以选择各种不同的用户界面选项,并可以选择MAPI和Windows Sockets支持。
这里使用缺省设置。
如果要设置其它高级选项,请单击“Advance”按钮,弹出“Advanced Options”对话框。
GIS二次开发实验指导书(7、8)
上机八根据属性查询1、新建项目,添加控件并布局。
2、新建窗体。
3、在新建窗体中添加控件并布局。
4、在主窗体“根据属性查询”按钮的Click事件中添加如下代码:5、设置主窗体的axMapControl1控件的Modifier属性为Public。
6、在弹出窗体中定义全局变量,修改构造函数。
7、在弹出窗体的Load事件中添加代码。
8、在下拉列表框的SelectedIndexChanged事件中添加如下代码。
9、在listBox1的DoubleClick事件中添加如下代码。
10、在弹出窗体的“确定”按钮的Click事件中添加如下代码。
11、在弹出窗体的关闭按钮中添加如下代码。
12、程序运行结果如图所示。
上机九打开属性表1、新建项目,设置项目保存位置和项目名称。
2、在项目中添加MapControl、TOCControl、ToolbarControl、LicenseControl和contextMenuStrip控件,并进行布局,如下图所示。
3、在contextMenuStrip中添加“打开属性表”菜单。
4、添加新窗体,用于显示所选图层的属性表。
5、在新窗体中添加控件dataGridView,布局,并重新定义构造函数。
DataTable objDataTable;IMapControl3 objMapControl;ILayer objLayer;public FormAttributeTable(DataTable pDataTable, IMapControl3 pMapControl, ILayer pLayer)//带参数的构造函数{InitializeComponent();objDataTable = pDataTable;objMapControl = pMapControl;objLayer = pLayer;}3、项目中添加新的类,命名为ClassOpenAttributeTable。
4、在ClassOpenAttributeTable类中建立构造函数。
gis二次开发2
2.3.2 安装 ESRIMapObjects
STEP:在光盘中有 三个文件;依次运 行 •Mo23Eval_Only.ex e:安装MO •Mo23Samples.exe :安装例子 •Mo23Data.exe:安 装例子所需要数据
安装完成后,可从“开始”->“程序” ->“ESRI” 找到 MapObjects 2.3程序组
*.tif
*.sun *.gis *.rls *.bil *.bip
*.tfw
*.snw *.gsw *.rlw *.blw *.bpw
BSQ
Band sequential
*.bsq
*.bqw
2.2.6 数据表
•在基于MapObjects编写的应用程序中,通过ODBC( 开放数据库连接)驱动程序,可以访问外部的数据表, 它们可以是种格式的,比如:Access, SQL Server, Oracle 等
2.3.2 安装 Microsoft Visual Basic 6.0 中文版
STEP 1:运行VB 安装光盘上的的 Setup.exe 程序 ,按提示进行安 装。(安装过程 中需要系列号的 地方可输入任意 数字例如:1111111111直到“ 下一步”按钮变 成可用状态)
•STEP 2: 安 装完成后,在 光盘目录VB6SP6B中找到 SetupSP6.exe ,将VB6 升级 到最新版本。 SP6 是微软公 司对其产品 VB6 的第6次 更新,修正了 以前的一些问 题
2.4.1认识VB 6的集成开发环境
VB 集 成 开 发 环 境
VB6中常用的控件库
2.4.2 在VB 6 中加载 MapObjects控件
STEP1: 启动 Visual Basic 6 ,在 开始出现的向导 中选择新建工程( 标准 EXE) . 确定 STEP2: 在工 具栏上点右键 (工 具栏位于VB窗口 的左边),在出现的 右键菜单中点击 ”部件”命令.