mapx的基本属性
MapX的基本属性 每个Map对象主要包括Datasets、Layers、Annotations三个对象集合。 Map对象有一些主要的属性,如Zoom用来设置放大级别(在地图上显示的大小),Rotation控制地图的旋转角度,CenterX和CenterY用于设置x和y的坐标系,这要取决于地图的投影。 Map对象的许多属性本身又是一个对象,比如说一幅地图由多个图层组成,则在一个Map对象中存在一个单独的layers集合,其中包含所有图层的信息。 ? Layers 在MapX中,每张单独的地图都被表示成单独的一个图层,所有的图层存储在layers集合中。Layers集合由Layer对象组成,按顺序编号为0到n。Layer对象由features对象组成,features对象又是由Feature对象组成,对应于地图中的点、线、区域或符号。 最上面一层为Layers(1),Layers(2)位于Layers(1)的下面,以次类推。最下面的图层最先绘制,最上面的图层最后绘制。在应用程序中,合理地安排好每层在Layers中的顺序是至关重要的。比如说有两个图层,一层为点,一层为区域,则应将点层放到区域层的上方,否则区域会将点覆盖。 另外,在进行地图选择操作时,根据要求调整图层的顺序也是十分重要的。MapX中的选择工具总是从可选择图层中的最上层开始选择,如果在地图上的同一位置存在多个位于不同层的地图对象,其结果是很难精确地选择到目标对象。因此,最好将被选择图层提到最上层显示。 ? GeoSets GeoSet是在GeoManager中建立好的.GST文件,类似MapInfo中的WorkSpace概念,是图层及其设置的集合,控制程序中显示的地图。也可以在运行阶段设置GeoSet,此时将导致已经加载的所有图层和DataSet被删除而由GeoSet中定义的图层所代替。如果单纯地想删除所有图层,只需给GeoSet赋一个空字符串即可。 可以使用GeoSet Manager程序来管理GeoSet 文件(*.GST)。默认情况下.GST文件存储在…\mapxmaps目录下,可以调用GeoDictionary Manager程序进行修改,指向用户程序数据所在的位置。 ? Datasets Datasets用于实现地图与数据的绑定。举例说明,有一个关于城市销售情况的MSAccess 数据库和一张该城市的地图,则可以将二者绑定,在地图上形象地显示出各城市销售业绩的趋势,这一点是表格数据无法做到的。 建立地图信息与属性数据之间联系的过程称之为自动绑定或自动匹配(autobinding /automatching)。要实现这一过程,必须首先将地图在GeoDictionary 中注册。 属性数据表示的可视化使得创建专题地图成为可能。 数据绑定"Putting Your Data on the Map" 专题地图"Theme Mapping and Analysis" ? Annotations Annotations集合提供了操纵地图中文字和符号的简单方法。Annotations位于所有其它图层的上方并且不与任何数据连接,有点儿象MapInfo中的透明图层。 Annotations包括以下主要的属性与方法:AddSymbol在Annotations中增加符号,符号类型使用Map.DefaultStyle定义;AddText在Annotations中增加文本;Remove删除特定的标注.;Type取值为miSymbolAnnotation或miTextAnnotation。 Annotations还有一个非常重要的属性Graphic,其定义为Graphic对象,在该对象中包含了符号或文本的样式、位置等信息,即Graphic的Caption、Position、Style 、X、Y属性。如Annotations的Type属性定义为miTextAnnotation,则可以定义Graphic的Caption属性设置标注的字符串。 ? 可创建对象 在MapX对象模型中,以下对象是可以被创建的: AffineTransform、BindLayer、BitmapSymbols、CoordSys、Datum、Feature、Fields、LayerInfo、Map、 ODBCQueryInfo、 Parts、Point、Points、Rectangle、Rowvalue、Rowvalues、Style、Variables、NotesQueryInfo、NotesViewInfo。 在Delphi中创建这些对象需要注意一点,即在后面注明MapX的版本。如在本课题实现过程中,由于使用的是MapX 4.0版本,因此创建语句要写成 s := CreateOleObject(′MapX.Style.3′;