【测绘课件】第八讲MapX应用开发.ppt

上传人:本田雅阁 文档编号:3102428 上传时间:2019-07-08 格式:PPT 页数:95 大小:721.54KB
返回 下载 相关 举报
【测绘课件】第八讲MapX应用开发.ppt_第1页
第1页 / 共95页
【测绘课件】第八讲MapX应用开发.ppt_第2页
第2页 / 共95页
【测绘课件】第八讲MapX应用开发.ppt_第3页
第3页 / 共95页
【测绘课件】第八讲MapX应用开发.ppt_第4页
第4页 / 共95页
【测绘课件】第八讲MapX应用开发.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《【测绘课件】第八讲MapX应用开发.ppt》由会员分享,可在线阅读,更多相关《【测绘课件】第八讲MapX应用开发.ppt(95页珍藏版)》请在三一文库上搜索。

1、MapInfo概论,第一讲 MapInfo简介及基本概念 第二讲 MapInfo基本操作表 第三讲 MapInfo查询及分析 第四讲 空间分析及属性信息图形化 第五讲 OLE 嵌入与MapBasic 简介 第六讲 MapInfo集成地图开发 第七讲 组件式GIS与MapX基础 第八讲 MapX应用开发,1、Geosets:Geoset 保存了地图图层的集合和用户设置。扩展名是.gst。.gst文件是文本文件,它包含若干用来告诉MapX显示什么表以及如何显示的元数据键值。Geoset设置包括投影、默认缩放值、对象的自动标注、缩放范围以及打开的表是否可见。 2、Map对象:每个 MapX 的对象、

2、属性和方法都衍生于 Map对象。每个在 Map 对象之下的属性和方法都会对生成整个 Map对象有所影响。主要是由 DataSets、Layers 和 Annotations 对象定义每一个 Map对象。 3、GeoDictionary:利用MapX作数据绑定或创建专题地图时,可以用 GeoDictionary来匹配数据源与地图图层。GeoDictionary是一个保存了关于哪个地图图层可以匹配、哪个字段可以用作匹配字段的信息文件(一般命名为geodict.dct)。如果想运用自动匹配/自动绑定,则必须在 GeoDictionary中注册文件。MapX GeoDictionary程序允许把新的M

3、apInfo表注册到GeoDictionary中。同时,在MapX GeoDictionary中,单击注册表按钮,然后选择要注册的表,设置表属性并为其输入描述。如果要想自动地把这张表加载到GeoSet中,单击添加按钮然后选择要把表添加进的GeoSet。,上节总结:,4、Layers集合与Layer对象: 图层类型:layer.type 确定图层中图元类型:layer.PredominantFeatureType 图层标注:layer.LabelProperties 注释(Annotations 集合): 栅格图像:使用MapX可以将栅格图像(位图)作为所创建地图的背景显示。但是栅格图像必需首先

4、成为MapInfo表的一部分。然后可以在图像的上方覆盖另外的数据,如街道地图和客户位置。图像只能作为背景或衬垫来观看。 5、Features和Selections: 地图图层中的所有图元及其所有子集表示为Features集合。 Selection集合表示当前已选中的Feature对象。 Feature对象:Feature.attach把独立的图元附加到地图上,使得地图的坐标系适用于该图元。,图元编辑:FeatureFactory对象在现存图元的基础上创建新的图元 返回的图元不需要再使用Attach方法。 6、工具:创建自定义工具时,需要控制创建工具的“类型”,即:就是要选择此工具是否允许用户单

5、击,或是单击并拖动来画线,或是单击并拖动来画矩形等等;也可以选择使用自定义工具时显示的光标。 设置插入图层:Map.layers.InsertionLayer属性指定的任一图层上,之后才可以用添加点、添加线、添加折线和添加区域等对象编辑工具在地图图层中创建和修改图元。在使图层成为InsertionLayer之前,一定要设置该图层的可编辑属性为True。 创建自定义工具:可首先声明一个全局常量来代表该工具 Const RULERTOOLID = 500 ToolNumber、Type 和 Cursor MouseDown、MouseMove事件;ToolUsed事件,一、数据绑定 1.1 Dat

6、aSet对象和DataSets集合 1.2 使用 Fields集合 1.3 将数据显示为点图层(BindLayer) 1.4 使用GeoDictionary进行数据绑定 1.5 访问远程空间数据及属性数据,第八讲 MapX应用开发,第八讲 MapX应用开发,二、专题制图 2.1 Themes 集合及专题地图类型 2.2 操作专题地图 三、逐层细化图层 3.1 准备“逐层细化”图层 3.2 创建逐层细化和“卷起”工具 四、地图输出及MapX应用程序发布 4.1 输出、打印地图 4.2 应用程序发布,一、数据绑定,1.1 DataSet对象和DataSets集合,1、数据绑定的概念: 将数据从数据

7、源放入MapX的处理过程 能在地图上以图元浏览数据; 可首先向地图绑定属性数据,然后基于这些数据创建专题渲染地图。 数据源可以是Visual Basic数据控件,或是ODBC数据源。在MapX中,数据由DataSet对象表示。如果有Visual Basic的绑定数据控件,就可以在设计时使用Map对象的DataSet属性;或者通过使用DataSets.Add方法编程来绑定数据。 结果:创建DataSet对象,2、数据源DataSource DataSource参数(DataSets.Add的第二个参数)实际上是一个OLE接口。MapX 通过接口直接从数据源访问数据。数据并没有真正传给DataSe

8、ts.Add。 下面是详细的几种数据源: .miDataSetDAODAO数据集(Data Access Object Recordset). DataSets.Add 的DataSource必须是一个DAO数据集对象.可以从Visual Basic的数据控件,Access窗体,或是Visual Basic, Access, C+中创建 一个数据集。 .miDataSetODBCODBC数据连接(Open DataBase Connectivity data source). MapX可以通过ODBC从任意ODBC数据源中获取数据。需要指定连接字符串,数据源名称,使用ODBCQueryInfo

9、执行的SQL查询语句(ODBCQueryInfo包含连接ODBC数据源的信息)。 .miDataSetLayer如果Dataset的类型是miDataSetLayer , 那么参考MapInfo Table表中的字段创建Dataset,则SoureData参数项必须是一个Layer对象。,.miDataSetGlobalHandle 引入以tab制表符为界的数据块。Dataset.add的SourceData参数必须是一个类型为 VT_I4 的变体设置以及等同于全局内存句柄的lVal 。在全局内存块中每行的数据格式为: field TAB field TAB field CRLF其中field

10、是带引号的字符串,或是不带引号的数值,TAB键的值是0x09, CRLF 值是0x0D 0x0A. .miDataSetOLEData 这是用于Powerbuilder这样的控件容器的数据源,当初始化MapX控件时,PB将以miDataGlobalHandle格式存在的数据传输给MapX。之后调用DataSets.Add方法,数据源类型显miDataSetOLEData为先前传入的数据创建Dataset。 .miDataSetUnbound 如果不支持前面提到的数据源,MapX 提供一个 “后门”。 这种类型允许MapX 通过建立事件循环向MapX控件容器请求数据,每次一个单元。MapX将提供

11、RequestData 事件以数据单元的行号列号。这样就可以使用任何方式获取数据同时通过这个事件把它传给MapX。 RDO: remote data object ADO: ActiveX data object,3、DataSet对象和DataSets集合 DataSet对象是在从数据源向MapX绑定数据的过程中生成的。 DataSet包含了数据绑定的地图图层中图元的计算过的值。数据源可能是 DAO 记录集,ODBC 数据源等形式。 DataSets 集合是代表地图中所有DataSet的对象。DataSets集合的方法和属性用来添加、删除 Dataset 对象,或者在集合中使用现有的 Dat

12、aSet 对象。 Datasets.Add可向MapX绑定来自数据源的数据,使外部数据源和地图建立联系。 DataSets.Add Type, SourceData, Name, Geofield, SecondaryGeofield, BindLayer, Fields, Dynamic Datasets.Remove,(1)Type参数 此参数用来说明所添加数据集的类型。它获取DataSetTypeConstants的值。 (2)SourceData参数 该参数用来引用数据,随Dataset类型的不同而不同。 (3)Name参数 该参数为唯一标识数据集的字符串。属于可选参数,如果不指定,则

13、缺省名为DataSetN,其中“N”为Datasets集合中的数字。 (4)Geofield参数 该参数是数据源中包含地理信息的列名称或索引。如果该参数未指定,则MapX搜索所有字段,以决定数据源中哪一列包含了GeoDictionary中指定的地理信息。如果要在地图上查看图元数据,那么数据源中的GeoField列必须是唯一的。GeoField列用来为新点层的图元命名。,(5)Secondary Geofield 参数 此参数只有当绑定数据集的图层存在不唯一关键列时才需要。 (6)BindLayer参数 如果正在绑定属性数据,则此参数指定和数据连接的地图图层;匹配 BindLayer时,Geof

14、ields必须唯一。 (7)Fields参数 该参数是Field对象集合中的Fields对象。Field对象用来描述导入数据源的字段,以及当匹配特定地图图元的数据源记录多于一个时,使用聚合函数是求和、求平均值或计数。 (8)Dynamic参数 该参数的值为布尔型,控制数据绑定是否是动态的。它是可选的,未指定时默认为False,即静态绑定数据。,一、数据绑定,1.2 使用Fields集合,数据源有多个数据列,MapX管理绑定的每一列数据,因此应当只绑定地图上所需的数据(例如,想要进行专题化地图或标注用的数据)。用DataSets.Add ( )的Fields参数来建立要绑定到地图的字段(列)的F

15、ields集合。 注意:声明字段变量时使用“MapXLib.Fields”。这样可防止与 DAO “Fields” 对象发生冲突。Dim flds As New MapXLib.Fields 可以通过 Dataset.Fields 的属性访问数据集的 Fields 集合。 Fields.Add方法将数据源中的一列数据作为字段添加到 Fields集合中。Fields集合使用DataSets.Add方法建立。Datasets.Add的Fields参数获取Fields集合,并使用Add方法建立它。一旦数据集已经创建,就不能再将Add方法用在数据集的Fields集合上。 Fields.Add Data

16、SourceCol, Name, AggregateFunction, Type 多匹配情况下的聚合: AggregateFunction参数,一、数据绑定,1.3 将数据显示为点图层(BindLayer),1、BindLayer对象 用来在由数据指定的位置处创建新的点图层。 当绑定数据具有 X/Y 坐标或点信息(例如 Zip Codes)时,以及想要在新的或已存在的图层上看到由数据指定位置的点时,就需要用到Bindlayer对象。 使用BindLayerObject添加数据集时,这些点会自动显示在地图上。如果没有用BindLayerObject添加数据集,则点是不会自动显示的。只有 Bind

17、LayerObjects才有这种行为。 BindLayer对象属性 使用BindLayer对象的操作步骤如下: (1)创建BindLayer对象; (2)当通过datasets.Add方法中的BindLayer参数传递此对象来添加数据集时,使用它。,2、在地图上将X/Y数据作为点图层显示 如果数据包含X/Y坐标,就可以通过数据绑定创建并显示点图元图层。使用BindLayer对象,并设置: LayerType 属性为 miBindLayerTypeXY; RefColumn1 属性为包含 X 坐标值的列名或索引(one-based); RefColumn2 属性为包含 Y 坐标值的列名或索引(o

18、ne-based)。 使新点图层成为永久图层: 使用BindLayer.Filespec属性或者指定文件的名字和位置,使得Datasets.Add方法能够创建永久图层来替代临时图层。如果不指定这个属性,则图层就是临时的。,一、数据绑定,1.4 使用GeoDictionary进行数据绑定,MapX使用GeoDictionary文件(默认名是GEODICT.DCT)记录与数据绑定有关的信息。使用DataSets.Add方法时,MapX能够分析数据,然后决定怎样绑定数据到地图上去。此方法有以下自动行为: 确定数据源中哪一列包含地理信息; 确定绑定到哪个图层。 这两个操作都是可选的。有参数用来明确地指

19、定包含地理信息的是数据源中的哪一列,或者哪一个地图图层将用来绑定数据。如果知道这些值中的任一个,就应当明确地指定它们以提高性能。 为使 MapX 能够绑定数据到地图图层上,下面的几个条件必须确保为真: 此地图的地理关键列需要被索引; 此地图和它的关键列必须在GeoDictionary中指定。,一旦来自数据源的列定义为地理列,并且确定了要绑定的地图图层,就开始绑定。数据源的一行匹配一个图元,数据置入图元中。如果某行含有不匹配图元的地理列或地图中没有这样的数据值,则DataMismatch事件被激活来通知容器。可以忽略DataMismatch事件,这种情况下MapX将简单地忽略此行。在自动数据绑定

20、期间,如果数据有模棱两可的情况,MapX就会调用ResolveDataBind事件。 在使用“非绑定”类型数据的数据绑定期间,使用RequestData事件建立循环,使得容器一次一个单元地向MapX提供数据。 因为数据源中的数据被聚合后储存在MapX中,当数据源的数据更改时,MapX不能反映该更改。DataSet.Refresh方法可以用来使MapX重读数据源,并对数据重新聚合并保存。但这样会耗费大量时间。 DataSet.Refresh不能在创建新点图层的DataSets中起作用。 当数据源中有新添加的行时,此方法并不在图层中添加新图元。,1.5 访问远程空间数据及属性数据,1、访问空间数据

21、 MapX提供有空间服务器访问功能。它允许开发者连结存储在空间服务器内的动态实时数据,例如运行在Oracle、Informix、DB2数据库,或者Oracle 8i Spatial数据库上的空间服务器MapInfo SpatialWare。空间服务器允许各公司在其企业数据库中寄存地图数据,以便于集中管理和确保安全性。 可使用Layers.Add方法用来自DBMS的数据来添加图层: 当需要在运行状态下动态计算查询时,随LayerInfo对象一起使用 Layers.Add方法; 当查询在程序设计阶段已知时,和.tab文件一起使用Layers.Add方法。可以直接将.tab文件放到geoset中,只

22、要确保当任何使用geoset的程序初始化时,都装载了该文件。 tab文件和LayerInfo对象都接受相同的参数。 LayerInfo参数,一、数据绑定,2、访问属性数据 要访问在查询中所选择的DBMS图层的空间对象,以类型为midatasetlayer的数据集使用datasets.add方法(从现有的图层中取得这些属性)。 添加DBMS图层时,为优化性能,在查询中最好只指定在应用中所要使用的列。如果未指定,则那些空间列、关键值列、要用来进行标注的列或是要用来创建专题的列会自动添加进来。而对所有可在地图上表示的表都可使用虚拟列“OBJECT”来引用包含空间数据的列。这是在带有X/Y列的表所需要

23、的。 说明:可以使用任何服务器方表达式/函数来指定列。同样,要避免在实际应用中从表中选择所有。,二、专题制图,2.1 Themes 集合及专题地图类型,专题制图是按照特定专题渲染地图的过程。专题通常使用数据集中的一组或多组数据。专题利用颜色渲染、填充图案、符号、直方和饼图表示数据。根据数据中的特定值指派这些颜色、图案或符号,可以创建不同的专题地图。 专题地图上显示的数据称为专题变量。根据所执行的专题分析类型,地图可以显示一个或多个专题变量。范围、格网渲染、等级符号、点密度、独立值都检查一个变量。直方图和饼图一次可以显示多个专题变量。 开始应用专题地图前,需要决定要显示哪些信息以及信息驻留的位置

24、。创建专题所用的数据来自数据集的Field对象或FieldS集合。这些字段作为Themes集合的Themes.Add 方法的 Fields 参数来传递。,1、Themes集合 每个数据集都有专题集合。Themes集合从专题集合中创建、计数、添加或删除 Theme 对象。 创建专题 Themes.Add Type, Field, Name 如:Map1.Datasets(1).Themes.Add miThemeRanges “TotPop”, “My Ranges Theme” 上面一行代码使用字段“TotPop”为 Datasets 集合中的第一个数据集创建范围专题。 参数 专题类型常量 一

25、旦将专题添加到指定集合,就可以创建Theme对象,并且操作对象的属性。,2、Theme对象: 设置Themes集合中专题的属性 方法属性如下:AutoRecompute、ComputeTheme、DataMax、DataMin、Fields、Layers、Legend(专题图例属性)、Name、ThemeProperties、Type、Visible 3、专题制图的类型: 独立值地图:显示通过特定数据集字段包含的独立值渲染点、线或边界,可以使用数值和名词性值。 使用名词性数据渲染点、线或边界时,只能用独立值进行渲染。名词性数据可以是非数值数据,也可以是其数字代表非数值数据的数值数据。日期被作为

26、数值数据,它可以用于范围和独立值地图。 范围地图、等级符号地图、点密度地图、直方图地图、饼图地图 双变量专题制图:使用点或线对象表示两个专题变量,1、操作专题地图 (1)Theme.ThemeDlg方法此方法显示对话框使用户可以修改专题 Map1.Datasets(1).Themes(1).ThemeDlg (2)专题的ThemeProperties对象 ThemeProperties对象存储在Themes集合中,其属性用于定义专题地图的外观(颜色、符号等)。ThemeProperties对象实际上包含有关专题如何显示的信息。 属性如下:AllowEmptyRanges、DataValue、D

27、istMethod、DotSize、Graduated、IndividualValueCategory、Independent、Size、width、 MultivarCategories、NumRanges、RangeCategories、SpreadBy、SymbolStyle、ValuePerDot 以上多个属性实际是其它对象。这些对象包括RangeCategory对象、IndividualValue对象、MultiVar对象和Style对象。,2.2 操作专题地图,二、专题制图,2、自定义专题图例 在创建专题地图时,MapX自动创建图例,解释颜色、符号或大小的意义。 每个专题都有Leg

28、end对象(Theme.Legend)。Legend对象包含可以控制图例显示的属性。 使用 Legend 对象的LegendDlg方法可以很容易地进行修改。 Map1.Datasets(1).Themes(1).Legend.LegendDlg,逐层细化图层使用户得以执行逐层细化分析和探测。如果地图包含逐层细化图层,用户就可以通过鼠标指向和单击地图的某个区域得到该区域更详细的信息。 1、开发步骤: (1)获取用来建立多层次逐层细化图层的多种表。可以使用 MapInfo Professional 创建表;成员表 (2)使用特殊的列和特殊的元数据创建新的空逐层细化表(.tab文件)。元数据为每一张

29、成员表分配层次名,并且标识成员表中的重要列-ID 列和标题列; (3)把逐层细化表加入地图(例如,把逐层细化表加入所使用的Geoset(s)中,或者通过象Layers.Add方法,把逐层细化表添加到地图中); (4)添加用户接口元素(例如工具栏按钮)到应用程序中,以便用户选择逐层细化工具并单击地图来进行细化。,3.1 准备“逐层细化”图层,三、逐层细化图层,向应用程序添加代码来响应用户对逐层细化工具的使用,此代码需要检测用户所选择的图元;确定替换图元的子图元;并调用一些方法来展开或者收缩地图图元(DrilldownRemoveFeatures, DrilldownAddFeatures) 。

30、2、准备“逐层细化”图层 要创建逐层细化图层,需要提供由两个或更多MapInfo表组成的表集合。 (1)逐层细化图层的每一层次的详细信息都需要一张MapInfo表。这些被称为成员表。 (2)额外会有包含特殊元数据的空表来描述成员表,它被称为逐层细化表。 成员表:逐层细化图层中的每个图元都必须有标识关键字,在单个层次中的所有关键字必须是唯一的; 逐层细化表:逐层细化表与其它表不同,它只包含一个文件:filename.tab。必须定义三个标准列:Key、Level 和 Label。所有这三列都为字符(字符串)列,32个字符宽度。,逐层细化表必须包含一系列元数据关键字。 元数据关键字语法如下: 以关

31、键字 begin_metadata 标记 .tab 文件元数据部分的开始; 原数据的每一行都有两个元素:关键字和数值。所有的关键字和数值都用双引号括起来; 逐层细化表必须包含 “IsDrilldown” 关键字,且此关键字值必须为 “True”; 每一个关键字都以字符 “” (反斜线)开始; 元数据关键字可以层次化地嵌套。层次结构的每一层次用反斜线()符号标记。关键字值限制最多为 239 个字符; 逐层细化表包含 DDMapComponentMaps 关键字层次结构。在此层次结构中,为每一张成员表指定四个元数据关键字:,例如,“逐层细化表示例”包含如 “DDMapComponentMapsOn

32、eLevelID”和“DDMapComponentMapsTwoxLevelID”这样的关键字层次结构。注意 DDMap、ComponentMaps 和LevelID是关键字层次结构标准的、必需的部分,而One和Twox是可自定义的。可使用任何喜欢的关键字名代替One、Twox、Twoxx等等;那些关键字名只是用来区分每个成员表的关键字集。 逐层细化表示例内容如下。如果要创建自己的逐层细化表,可以复制该示例到一文本文件,并参照自己的成员表进行修改。,1、创建“细化”工具: 使用CreateCustomTool方法可以实现逐层细化工具。CursorConstants集包括两个为逐层细化应用程序特

33、别提供的光标:miDrilldownExpandCursor和 miDrilldownContractCursor。每次使用自定义逐层细化工具将触发ToolUsed 事件。在ToolUsed事件过程中,需要执行引起逐层细化动作的代码。分四步: (1)使用如SelectByPoint或SearchAtPoint这样的方法,确定用户所单击的地图图元; (2)确定用来替换用户所单击图元的子图元集。例如,可使用一个或者更多嵌套的Case语句来确定用来替换所选父图元的子图元; (3)调用DrilldownAddFeatures方法添加子图元到地图; (4)调用DrilldownRemoveFeature

34、s方法从地图上删除父图元(用户所单击的图元)。 并不是“编辑”表,只是复制图元到当前可视的图元集。,3.2 创建逐层细化和“卷起”工具,三、逐层细化图层,2、创建“卷起”工具: 当实现逐层细化工具后,还可为用户提供卷起工具与逐层细化工具有相反效果的工具。可使用与创建逐层细化工具相同的方式来创建卷起工具。将会使用同样的方法(DrilldownAddFeatures和DrilldownRemoveFeatures)。不同的是不是添加子图元和删除父图元,而是做相反操作添加父图元和删除子图元。 3、重置“逐层细化”图层: 可以通过调用DrilldownReset方法重置逐层细化图层。重置逐层细化图层会

35、清除整个图层,而且使用一张成员表的图元重新初始化图层。,4、 逐层细化图层的限制和要求: 逐层细化图层中每一个图元必须拥有一个ID,该ID在所属成员表中是唯一的; 不能在逐层细化图层中使用栅格图像衬垫表。 当使用Themes.Add 创建专题时,将花费一些时间用大量的数据行来计算图层范围,例如逐层细化或是服务器图层。Add方法的ComputeTheme参数可以为任意专题类型创建非计算专题。非计算专题可以创建没有自动计算范围的专题。可以自己创建范围。这对逐层细化或服务器图层来说是比较快的方法。 逐层细化图层不会“记录”各种不同逐层细化层次的状态(图元被展开,等等)。如果希望应用程序恢复上一次使用

36、地图时精确的状态,需要在退出时编写代码存储地图的逐层细化设置,并在启动时恢复设置。 虽然可以编辑逐层细化图层的图元,但不会保存编辑,且成员表不受编辑的影响。当编辑逐层细化图层中的图元时,不是修改成员表,而是修改从成员表的图元的临时副本。,4.1 输出、打印地图,四、地图输出及MapX应用程序发布,1、输出地图: 要输出地图到图形文件或复制地图的内容到剪贴板,使用ExportMap方法。 Map.ExportMap (Location, Format, W, H) Format常量 Map1.PaperUnit = miUnitCentimeter Map1.ExportMap “clipboa

37、rd“, miFormatBMP, 12, 9 2、ExportSelection属性: 使用户可以控制是否让选定范围的模式也随地图输出。 Map1.ExportSelection=True Map1.ExportMap “c:tempmap.jpg“, miFormatJPEG,3、打印地图PrintMap方法 Map.PrintMap(hDC,x,y,w,h) Map1.PrintMap Printer.hDC,0,0,Map1.Width*100,Map1.Height*100 说明:所绘制的当前地图要与给出的矩形相适应。当保持宽和高的相关比例时,将获得最佳结果。该方法仅打印MapX地图

38、的内容;它不显示任何图标、工具栏或菜单项。如果要看到输出的附加控件,可以打印包含MapX控件的窗体。,4.2 应用程序发布,四、地图输出及MapX应用程序发布,1、MapX 客户安装项目和步骤 当把应用交付给客户时,需要安装以下项目: (1)已创建的软件; (2)MapX控件,以及与它相关的文件; (3)在应用中用到的地图和Geoset。 安装和发布MapX应用主要有四个步骤: (1)将必需的文件安装到用户计算机上; (2)运行实用工具(例如regsvr32.exe)把特定的文件注册到用户的系统中; (3)将特定键值添加到Windows注册表中; (4)在应用程序运行时接受MapX许可字符串。

39、,2、安装 MapX文件 MapX必要文件: (1)Windows公用 DLL文件 Mfc42.dll、msvcp60.dll、msvcrt.dll、Olepro32.dll、oleaut32.dll (2)MapX程序文件:安装在“C:Program FilesMapInfoMapX 5.0”文件夹之下。这些文件无须注册。 (3)Mapx50.ocx (4)字体文件 可选文件:(1)NADCON 支持文件;(2)位图符号;(3)栅格图像支持 (4) ODBC 支持 ;(5) Notes 文档支持,3、安装地图和Geoset 注册Geoset是把和此Geoset有关的每一张MapInfo表注册

40、到GeoDictionary中的简便方法。通过把MapInfo表注册在GeoDictionary中,可以用此表来作自动绑定。 若使用GeoDictionary,当注册Geoset时,GeoDictionaryManager50.exe就会将合适的项添加到GeoDictionary中(geodict.dct)。如GeoDictionary不存在,GeoDictionaryManager50.exe 会创建它。 GeoDictionaryManager50.exe 此步骤必须要在所有的Geoset和相关表都装在用户机器上后才能执行。检查Geoset,查看每一张表所期望的路径。如果使用硬盘上不同区域

41、的MapInfo表创建Geoset,Geoset将会给不和Geoset在同一目录下的所有表指明完整路径。而如果重新分布此Geoset,那么将不得不在与最初的Geoset相同的路径下查找这些表。要避免此问题,将所有的MapInfo表复制到同一目录下,接着创建Geoset。然后在同一个目录下创建此Geoset。,欢迎多提宝贵意见! 谢谢! E-mail:,大学课件出品 版权归原作者所有 联系QQ :910670854 如侵权,请告知,吾即删 更多精品文档请访问我的个人主页 http:/ 却聪明得太迟 把钱省下来,等待退休后再去享受 结果退休后,因为年纪大,身体差,行动不方便,哪里也去不成。钱存下来

42、等养老,结果孩子长大了,要出国留学,要创业做生意,要花钱娶老婆,自己的退休金都被拗走了。,人生太短,聪明太晚(2),当自己有足够的能力善待自己时,就立刻去做,老年人有时候是无法做中年人或是青少年人可以做的事,年纪和健康就是一大因素。小孩子从小就告诉他,养你到高中,大学以后就要自立更生,要留学,创业,娶老婆,自己想办法,自己要留多一点钱,不要为了小孩子而活我们都老得太快却聪明得太迟,我的学长去年丧妻。这突如其来的事故,实在叫人难以接受,但是死亡的到来不总是如此。学长说他太太最希望他能送鲜花给他,但是他觉得太浪费,总推说等到下次再买,结果却是在她死后,用鲜花布置她的灵堂。这不是太蠢愚了吗?! 等到

43、、等到.,似乎我们所有的生命,都用在等待。,人生太短,聪明太晚(3),等到我大学毕业以后,我就会如何如何我们对自己说 等到我买房子以后! 等我最小的孩子结婚之后! 等我把这笔生意谈成之后! 等到我死了以后 人人都很愿意牺牲当下,去换取未知的等待;牺牲今生今世的辛苦钱,去购买后世的安逸 在台湾只要往有山的道路上走一走,就随处都可看到农舍变精舍,山坡地变灵塔,无非也是为了等到死后,能图个保障,不必再受苦。许多人认为必须等到某时或某事完成之后再采取行动。明天我就开始运动,明天我就会对他好一点,下星期我们就找时间出去走走;退休后,我们就要好好享受一下。,人生太短,聪明太晚(4),然而,生活总是一直变动

44、,环境总是不可预知,现实生活中,各种突发状况总是层出不穷。身为一个医生,我所见过的死人,比一般人要来得多。这些人早上醒来时,原本预期过的是另一个平凡无奇的日子,没想到一个意料之外的事;交通意外、脑溢血、心脏病发作等等。剎那间生命的巨轮倾覆离轨,突然闯进一片黑暗之中。那么我们要如何面对生命呢?我们毋需等到生活完美无瑕,也毋需等到一切都平稳,想做什么,现在就可以开始做起。 一个人永远也无法预料未来,所以不要延缓想过的生活,不要吝于表达心中的话, 因为生命只在一瞬间。,人生太短,聪明太晚(5),记住! 给活人送一朵鲜花,强过给死人送贵重的花圈,每个人的生命都有尽头,许多人经常在生命即将结束时,才发现

45、自己还有很多事没有做,有许多话来不及说,这实在是人生最大的遗憾。 别让自己徒留为时已晚的空余恨。逝者不可追,来者犹未卜,最珍贵、最需要实时掌握的当下,往往在这两者蹉跎间,转眼错失。,人生太短,聪明太晚(6),人生短暂飘忽,包得有一首小诗这样写: 高天与原地,悠悠人生路; 行行向何方,转眼即长暮。 正是道尽了人生如寄,转眼即逝的惶恐。 有许多事,在你还不懂得珍惜之前已成旧事;有许多人,在你还来不及用心之前 已成旧人。 遗憾的事一再发生,但过后再追悔早知道如何如何是没有用的,那时候已经过去,你追念的人也已走过了你。,人生太短,聪明太晚(7),一句瑞典格言说:我们老得太快,却聪明得太迟。 不管你是否

46、察觉,生命都一直在前进。 人生并未售来回票,失去的便永远不再得到。 将希望寄予等到方便的时间才享受,人生太短,聪明太晚(8),我们不知失去了多少可能的幸福 不要再等待有一天你可以松口气,或是麻烦都过去了。 生命中大部分的美好事物都是短暂易逝的, 享受它们、品尝它们, 善待你周围的每一个人, 别把时间浪费在等待所有难题的完满结局上。 找回迷失的生命 死亡也许是免费的 但是,却要付出生命的代价。 劝大家一句话:把握当下,莫等待。,成功人生的十堂课,人生成功第1课,做一个终生学习的人,离开学校并不意味着学习就结束了。 学习可以成为一种生活方式,帮助你发挥最大的潜能。 我们从未停止学习,总会有新的,有

47、趣的东西等待我们去发现。 学习新的技能可能让人感到有一点恐惧,但每当我们在个人学习上停滞不前时,我们都需要去学习新的东西。 积极地寻求支援和建议,突破停滞期。 参加一些培训,进修,夜校任何新的兴趣都将会有助于发展你的优势。 多看,多听,让你的头脑保持活跃。活到老,学到老。,人生成功第2课,令自己感到沮丧的秘诀就是用空闲时间去烦恼自己是否快乐。所以不要费事去想它!摩拳擦掌干起来吧。你将热血沸腾,你会头脑清醒。很快,在你身体中的这种高涨的积极人生观将把烦恼从你的头脑中赶出去。 行动起来,忙碌起来。这是世界上最便宜的一种药,也是最好的一种。,人生成功第3课,在困境中寻找成功的希望 逆境是一所最好的学

48、校。每一次失败,每一次打击,每一次损失,都蕴育着成功的萌芽,都教会我在下一次有更出色的表现。我再也不会逃避现实,也不会拒绝从以往的错误中获取经验,我不再因此而促成自己的失败。因为我知道,宝玉不经磨砺就不能发光,没有,我也不能完善自我。 现在我知道,灵魂倍受煎熬的时刻,也正是生命中最多选择与机会的时刻。任何事情的成败取决于我在寻求帮助时是抬起头还是低下头。无论何时,当我被可怕的失败击倒,在最初的阵痛过去之后,我都要想方设法将苦难变成好事。伟大的机遇就在这一刻闪现这苦涩的根必将迎来满园芬芳! 我将一直在困境中寻找成功的希望。,人生成功第4课,没有人可以使你感到自卑 我选择自我感觉良好,这样我能更加

49、开放地学习。如果人们给我负面的回应或是批评我做的事情,我不会认为他们所说的就表明我是一个“差劲的”人。我坚信自尊由我掌控,这让我毫无戒心地去听取别人的反馈,想看看是否有我可以学习的东西。 我们每天都有两种选择。我们可以感到自己很棒,也可以感到自己很差劲。难道有人会选择后者吗?,人生成功第5课,紧紧抓住梦想 我们每个人都有梦想。我们每个人都希望能发自内心地相信自已有一种特殊的天赋,相信自己能发挥重要的作用,相信自己能以一种特殊的方式感动他人,相信自己能够把世界变得更加美好。 在一生中,我们都曾经对自己渴望并追求的生活品质抱有憧憬。然而,对我们大多数人来说,这些憧憬在日常生活的成规和挫败中已经变得如此渺茫,以到于我们甚至不再努力去实现它们。对太多人来说,梦想已经远离,随之远离的还有塑造我们命运的意愿。很多人已经推动

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1