组件式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 球坐标系与平面坐标系