MAPINFO电子地图基础知识

来源:互联网 发布:android xml布局优化 编辑:程序博客网 时间:2024/03/28 16:18

MAPINFO电子地图基础知识
地图化概念
按图层地图化
动态图层
Features和Selections
数据 绑定
专题制图和分析

一、地图化概念
MAPINFO电子地图 一个很重要的概念就是图层和图元。每一个图层都需要自己的记录和地图文件。MapX以 MapInfo 表的形式组织所有潜在信息。每个表都是一组用来在地图中创建图层的 MapInfo 文件。所有 MapInfo 表都会拥有下列文件:

<文件名>.tab:描述MapInfo表的结构。
<文件名>.dat:表格格式数据。
<文件名>.map:描述图形对象。
<文件名>.id:链接对象和数据的交叉引用文件。
<文件名>.ind:索引文件。
注:如表没有地图对象,第3、4文件不存在。
每个可用地图表示的MapInfo表都能在地图上作为图层显示。一个 MAPINFO电子地图 可能包含很多不同的地图层,而每一层都包含了地图的不同部分。这些图层一层层叠加,就可以看到整个地图信息。如下图:

图元顾名思义就是图层中的一个元素。在MapX中通过Feature对象来访问这些地图对象。有四种基本的图元样式:
区域对象:覆盖给出地区的封闭对象。
点对象:表示单个数据位置。
线对象:覆盖给定距离的开放对象。
文本对象:描述地图或其他对象的文本。

二、按图层地图化
MAPINFO电子地 图 总是由一个或多个图层组成,我们为了实现我们的目的,可能需要创建不同的图层,并按一定的顺序来组织我们的图层。每个Map都有图层的集合Layers,这个集合由Layer对象组成。Layers集合中的地图图层按递增的索引顺序显示(Layers(1)是最上面的图层),底部的图层首先绘制,顶部的图层最后绘制,所以正确地排列图层很重要。
有时我们希望某个地图图层仅在某些缩放级别显示。图层的缩放控制可以做到这一点。一旦为图层设置了图层缩放,则只有当地图在最小缩放级别和最大缩放级别之间时,地图才显示。
有时我们希望 MAPINFO电子地图 能给我们一些提示,比如:城市名称等。图层的 标注 就可以完成该工作。MapX提供了多种方法来 标注 地图图层中地理对象的属性。它们的绘图位置基于地理对象中心位置及其他信息。

三、动态图层
在所有的 MAPINFO电子地图 图层中,有一个很重要的图层:动态图层(Animation)。动态图层在地图图元需要经常更新的时候很有用。在该种图层中地图对象经常改变的地方,地图可以更快地重新绘制。
任何一个图层都可以成为动态图层,只需设置Map.Layers.AnimationLayer=CurLay
注:动态图层将绘制在所有图层的上方。

四、Features和Selections
1、什么是地图图元?
MAPINFO电子地图 图元(Feature)是地图上的地理对象,它可以是点、线,也可以是一个区域。
2、什么是Features集合?
Features集合是图层中所有图元及其所有子集。
3、什么是Selection集合?
Selection集合也是Feature对象的集合,它表示当前已选中的Feature对象。MapX自动高亮显示在Selection集合中的所有图元。
取得Features的方法:
Layer.AllFeatures
Layer.NoFeatures
Layer.SearchWithinDistance
Layer.SearchWithinFeature
Layer.SearchWithinRectangle
Layer.SearchAtPoint
Features的方法:
Add:添加图元对象或整个图元集合
Clone:复制为另一个图元集合
Common:取两个图元集合的交集
Remove:删除图元或图元集合
Replace:用新内容替换原有内容
图元对象
通过图元对象方法可以创建和操作独立图元对象。但独立图元必须附加到地图上才能引用对象的所有方法和属性。
图元对象属性:
CenterX, CenterY
FeatureID
Length, Perimeter
Name
Type
Selection集合的方法:
ClearSelection, Clone, Common, Remove, Replace, SelectAll, SelectByPoint, SelectByRadius, SelectByRectangle, SelectByRegion。
SelectionChanged事件:
当更改选择时调用该事件。通过响应该事件可以处理用户希望的工作。

五、数据绑定
所谓数据绑定,就是将数据从数据源放入MapX的处理过程。MapX支持许多不同的现有流行商业数据库。
将自己的数据绑定到地图上的优点:
能在地图上以图元浏览数据
可首先向地图绑定属性数据,然后基于这些数据创建专题渲染 MAPINFO电子地图
有两种方法进行数据绑定:
如果有VB的绑定数据控件,就可以在设计时使用Map对象的DataSet属性。
通过使用DataSets.Add方法编程来绑定数据。
数据绑定过程会创建DataSet对象,它包含了数据绑定到地图图层中的图元的计算值。
DataSets的方法:
Remove i:删除第i个数据集
Add (Type, SourceData, [Name], [Geofield], [SecondaryGeofield], [BindLayer], [Fields], [Dynamic])
注:对大多数数据绑定类型, SourceData其实是一种OLE接口。MapX通过这个接口直接从数据源中访问数据,数据并没有真正传递给DataSets.Add。
我们常用的绑定方式:miDataSetLayer(MapInfo表)。并且我们会指定表中的数据字段名,这样我们就可以根据字段名来添加、查找数据。对MapInfo表,有两种存储方式:临时表和永久表。对临时表的表存储格式又有两种: 内存 和磁盘。这两种存储格式的时间差异非常大。前者比后者快8倍左右。
数据绑定事件:一旦数据源的某列被定义为地理列,并且确定了绑定数据的图层,则绑定就开始进行。数据源的每一行都和一个图元相匹配且数据将会带入地图。如果某行有不匹配发生,则DataMismatch事件被激活。
刷新数据集:因为数据源发生变化时,MapX通过调用DataSet.Refresh来反应这种变化。但数据源有新行时,此方法并不添加新图元。

六、专题制图和分析
专题制图是可视化数据的一种方法。简单地说,专题制图是按照特定专题渲染 MAPINFO电子地图 的过程。专题通常使用数据集中的一组或多组数据。
专题可以利用各种方式来表现数据,如:颜色渲染、填充图案、符号、直方和饼图等。
1、专题变量:专题地图上显示的数据称为专题变量。根据专题分析类型,地图可以显示一个或多个专题变量。也可以创建双变量专题地图,这里一个地图对象(例如符号)表示两组不同数据。例如:符号颜色代表一个变量,符号大小代表另一个变量。
2、Themes集合:每个数据集都有专题集合。Themes集合从专题集合中创建、计数、添加或删除Theme对象。
3、创建专题:Themes.Add [Type], [Field], [Name]
常见的专题类型:
MiThemeRanged 范围
MiThemeBarChart 直方图
MiThemePieChart 饼图
MiThemeGradSymbol 等级符号
MiThemeDotDensity 点密度
MiThemeIndividualValue 独立值
MiThemeAuto best guess
范围 MAPINFO电子地图 :

直方图:

饼图:

等级 MAPINFO电子地图 :

点密度 MAPINFO电子地图 :

独立值:

专题对象的属性:
AutoRecompute (True)
ComputeTheme (True)
DataMax, DataMin
Fields, Layers
Legend
Name
ThemeProperties
Type, Visible (True)
操作专题 MAPINFO电子地图 有两种方法:
Theme.ThemeDlg方法
专题的ThemeProperties对象
相对而言,后一种方式可以更容易地控制用户是否可以更改。
我们常用的专题包括范围专题和独立值专题。
1、范围专题
如果需要按照自己定义的范围和相应颜色显示,需要设置:
Theme.AutoRecompute = False
Theme.ThemeProperties.SpreadBy = miSpreadByNone
2、独立值专题
修改独立值专题的特性可以通过Theme.ThemeProperties.IndividualValueCategories的相关属性来修改。
3、自定义专题图例
在创建专题地图时,MapX自动创建图例,解释颜色、符号或大小的意义。
修改专题图例也可以通过两种方法:
Theme.Legend.LegendDlg
Theme.Legend的相关属性