组件式GIS二次开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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记录是等长的,可以迅速通 过计算得到对应的图元属性数据所在的位置,读取属性数据 即可。
注意!
在将对象的引用赋给变量、数据类型的元 素或可写对象的属性时,须使用关键字 “set”; 在创建对象类的实例时,须使用关键字 “new”。
4.2地图放大、缩小、漫游等操作
Map1.Extent Map1.pan set map1.extent = map1.fullextent
4.3 打开影像文件
(1)数据访问对象(DataConnection object)
通过数据访问对象,能建立与地图数据的联系。增加属性值,从 地图元素上反馈属性信息。数据通道对象组由以下部件组成: 数据连接(Data Connection)对象是MapObjects通向地图数据 的通道。它包括属性和方法来建立与地理数据集合 (GeoDatasets)的联系。
The ESRI Shapefile format defines the geometry and attributes of geographically referenced features in several files with specific file extensions that are stored in the same folder on disk. These consist of a main file, an index file, and a dBase table. The main file is a direct access, variable-record-length file in which each record describes a shape with a list of its vertices. In the index file, each record contains the offset of the corresponding main file record from the beginning of the main file. The dBase table contains feature attributes with one record per feature. The one-to-one relationship between geometry and attributes is based on record number. Attribute records in the dBase file are stored in the same order as records in the main file. The main file, the index file, and the dBase file have the same prefix and the following suffixes: .shp - the file that stores the feature geometry. .shx - the file that stores the index of the feature geometry. .dbf - the dBase file that stores the attribute information of features.
1).Trackline方法 2)ToMapDistance方法,同时熟悉 FromMapDistance, FromMapPoint, ToMapPoint的方法用途。
4.7 移除图层
1) 移除活动图层(选中的当前图层)
.Layers.Remove Index 2)移除所有图层
4.8 改变线型(style)
A DataConnection represents a connection to a source of geographic data. Sources that MapObjects can connect to are: folders containing Shapefiles or CAD files, SDE database instances, ARC/INFO workspaces and VPF data sources.
TableDesc对象给你关于与记录集相连的表的字段的信息。 表(Table)对象是一个只读数据通道对象。它代表来自ODBC 数据源的 一个表单。你可增加一表作为与图层对象的关联或为了大批地址匹配。 字段集合包括记录集对象的字段对象。 统计对象代表关于一个记录集的简单统计信息。你首先应用一方法计算 关于记录集的统计值,然后可在统计对象中检查结果。
4. 功能的实现
4.1.打开shp文件
1)学会使用CommonDialog控件 2)学会简单错误处处理方法
3)学会从全路径中截取文件名称的方法
4)学会从全路径中截取目录的方法
学会 .DataConnection 的定义和使用方法 学会.Database的定义和使用方法 学会.GeoDataset的定义和使用方法 学会.FindGeoDataset的定义和使用方法 学会.Layers.Add的定义和使用方法
字符串集合是一组标准字符串数据类型集合。你可通过它从其它对象中 取值来自接口控件(如列表框)中增加数据。
(2)地图(图层)对象( A MapLayer object )
通过地图显示对象组,能用符号或专题描述画一张地图。 你也可加入图像做为背景,在地图上显示动态数据。地 图显示对象组由以下部件组成: 地图控件使你能显示图层、图像层,和动态跟踪图 层对象,你可编写代码来控制鼠标驱动绘图事件,设置 显示参数,用方法可画元素,闪烁选择的元素,计算点 与元素的距离,输入线,圆,三角。 层(Layer)集合是服务于地图控件的图层对象和影 像层对象的集合。 图层对象代表带有一些显示属性的地理数据集合对 象。它可让你处理专题地图,此对象有几个方法来查找 和选择地理元素。
(3)地理数据集对象 (GeoDataset object )
A GeoDataset object represents a layer of geographic data. The GeoDataset object is associated with the MapLayer object in order to display the data in a Map. This geographic data may be held in any of the vector data formats supported by MapObjects.
地理数据集合( GeoDataset)对象代表制图数据并可引用图层。它可引 用形文件或SDE layer的数据。 地理数据集合是对于一个数据连接的所有地理数据集合对象的总合。 它是一特定文件夹中所有形文件或SDE数据库中所有SDE层。
记录集合(Record set)对象代表一个图层的记录。如果你做了一个选择 集,它就代表所选记录。它类似于数据库指针。
图像层对象代表一作为地图控件上的背景的影像文件。 动态跟踪图层(Tracking Layer)对象让你能动态拖 拽元素而无需重显。这对实时数据获取是十分理想的(如 GPS)。它也可用于显示基本几何形状(如三角、圆)和描 述性文本。它们都不是地图数据的一部分。 Geo Event对象代表可加到Tracking Layer对象上 的点元素。 符号(symbol)对象是广泛使用的对象,它影响如何 在地图上显示元素的许多方面。其属性包括:颜色、字 形、大小、形状。 文本(Textsymbol) 对象代表文本的某些属性(如准 线、字型) 其他……
3.MapObjects的二次开发
安装,使用帮助(演示) 例子
3.1 MO的基本框架和组成
MO包含一个地图控件(Map Control)和一 组对象。这些对象按其功能可以分为4组: 数据访问对象(DataConnection object) 地图(图层)对象( A MapLayer object ) 地理数据集对象(GeoDataset object ) 地址匹配对象(TrackingLayer object ) 通过地图显示对象,可用符号或专题描述画一 张地图。也可加入图像做为背景,在地图上显 示数据 。 除了以上的对象还有投影对象
3) 图层操作与legend控件的关联 LoadLegend
4) AfterSetLayerVisible事件响应
4.5 坐标值的显示
1)statusbar控件的使用 2)点(point)的定义与使用 3)屏幕坐标系转换为地图坐标系 4)数据精度显示的方法 5)状态条Panels 长度变化的方法
4.6 测量距离
1) dimcurlayer as MapObjects2.ImageLayer 2) curlayer.File=fullpass 3) Layers.Add curLayer
4.4 图层管理
1)legend控件的加载 2) .setMapSource .LoadLegend .ShowAllLegend 方法的使用
线 点 面
4.9 属性查询
.SearchByDistance()函数的用法
Set variable = object.SearchByDistance( shape, tolerance, expression) .
FlashShape()函数的用法 object.FlashShape shape, nTimes MXFlexGrid控件的使用
(4)地址匹配对象(TrackingLayer object )
地址匹配对象组让你进入一图层上的某个地址,该地址具有街道和 地址范围并返回一个位置,你也可发现十字路口的位置和地名。地 址匹配对象组由以下部件组成: 地址匹配(Address Matcher)对象让你列出含有地址范围的道 路中心线的地理数据集合,并具有为单个或一批地址匹配的方法。 地址对象代表关于Address Matcher对象的方法中标准化地址。 定位对象(Place Locator)让你列出带有地名的地理数据集并通 过一个方法找出地名的位置。 地址位置(Address Location)对象包含一段代码指示是否(或 如何) 一个地址被解决如果已被解决指出与地址匹配的图型位置。
属性查图元,就是通过对属性数据的查找,来定位 到地图上相应的图形。而对.dbf的查询,为了加快属性 数据查找的速度,需要对.dbf文件的相关查询字段建立 索引,比如B树索引。返回查询到的第多少条记录或者记 录集合,借助对.shx文件查找(三个文件记录顺序是一 致的),直接找出图Biblioteka Baidu在.shp文件中的位置。 通过以上的分析知道,需要额外建立两个索引: 对.shp图形建立的空间索引,对.dbf属性查询字段建立 的索引。这两个索引既可以动态在内存中建立,也可以 自己定义文件格式,物理地把索引给存储起来,以减少 动态建立索引所花费的时间和内存开销。下面重点 就.shp文件数据存储以及相应的空间索引的建立与存储, 做详细介绍。