8.5 MapInfo应用实例
  下面以中文Windows95/中文MapInfo Professional 4.5为平台,以几个林班构成的一个工区——东南沟为例,说明MapInfo的一些应用。
  一、查询功能的应用
  系统的查询功能包括从地图到数据库的查询和从数据库到地图的查询。
  1.从地图查询数据库
  从地图查询数据库由两种方法。
  (1)在地图上用信息工具查询数据库。选中信息工具按钮,用“十”字指针选中地图上一小班对象,则信息窗口显示出在小班所在地理位置上所有对象的属性信息,如图8-7所示。图中3个子窗口分别是地图窗口、浏览窗口和信息窗口。地图窗口中显示出东南沟的林班与小班区划图,浏览窗口显示的是小班表的信息,信息窗口中指明当前这个地理位置上有几个对象,分别在几个表中。如果要进一步查看哪张表的信息,则用鼠标点中信息窗口中的那张表即可。这种采用信息工具查询的方式可以直接查看地图窗口中任何地图对象的信息。
  (2)用选择工具查询数据库。直接用选择、半径选择、边界选择、矩形选择工具对地图上的对象进行选择,如图8-7。当用选择工具选中一个小班时,地图窗口中被选中的对象表现为高亮度显示,浏览窗口上小班表中相应记录前的选中标记变为黑。若要选中多个地图对象时,按住Shift键,逐个点中要选择的对象即可。也可以用其它几个选择工具对图上一定的范围进行选择。选择好对象后,既可以在小班表浏览窗口查看所有的记录,也可以用浏览窗口工具按钮调出“浏览表”对话框,从对话框中选择要查看的Selection或Query 临时表,临时表中的数据是地图上所有被选中的记录。
  2.从数据库查询地图
  从数据库查询地图也有两种方式:
  (1)采用选择记录的方式。即在数据的浏览表中用鼠标点中记录前面的选择标记,则地图中相应地理位置的空间对象表现为高亮度。如果查询要选择多个记录,则需按住Shift键,再逐个点中要选的记录,则地图上被选中的对象将全部显示为高亮度。
  (2)采用SQL选择查 询方式。这是最灵活、最常用的查询方式。在本例中包含东南沟林班和
小班两张表。林班表存放着林班数据,小班表存放小班数据。两表通过“林班”字段发生联系,系统通过该字段分辨林班地图对象与小班地图对象的地理关系。下面是用SQL查询这两表的例子。
  例1:若要查询东南沟小班表中面积小于100亩,且树种为柞树或油松的小班。
  则在“SQL选择”对话框中作如下填写(见图8-3):
  选择列: 林班,小班,面积
  从表: 东南沟小班
  条件: 面积<100 And树种=“柞树”Or树种=“油松”
  结果如图8-8所示。
  例2:若要按树种的总株数、总面积、总蓄积、平均年龄等分组东南沟小班表。则在“SQL选择”对话框中作如下填写:
  选择列: 树种,Sum(株数),Sum(面积),Sum(蓄积),Age(年龄)
  从表: 东南沟小班
  按列分组: 树种
  结果如图8-9所示。
  例3:若查询所有和3林班的32小班相邻的小班,在“SQL选择”对话框中作如下填写:
  选择列:*
  从表:东南沟小班
  条件:object Intersects(select object from东南沟小班where林班=“3” and 小班=“32”)
  结果如图8-10所示,地图中显示出3林班中32小班及其相邻小班。
  二、制作专题地图
  专题地图是利用数据库分析和表现数据的一种强有力的方式,通过专题渲染,容易发现在数据列表中几乎不可能发现的模式和趋势。制作专题地图可以根据数据表中特定的值来赋给地图对象颜、图案、符号,以及用一些专题方法(例如饼图和直方图)来显示地图数据。
  创建专题图时首先在“地图”菜单上选择“创建专题地图”命令,然后按系统提示的步骤实现专题图的创建,其步骤为:
  1.确定所要创建的专题图的类型
  有6种类型供选择:范围、直方图、饼图、等级符号、点密度和独立值。
  2.选择地图的专题值
  即确定用于创建专题地图的表和字段,可在下拉列表中选择相应的数据表和字段名。
  3.自定义专题地图
  即自定义地图所用的各种选项,包括自定义范围、样式、图例和排序等,点中项目的按钮,弹出相应的窗口,用户按照自己的设置,生成专题图。
  对创建好的专题图可根据需要进行修改、保存。下面是制作专题地图的例子。
  例1:创建东南沟小班的年龄分布专题图,这里用范围专题图的方式来进行渲染地图,要求将一个年龄段的小班用一种颜来显示。
  结果如图8-11所示。
  例2:创建东南沟小班株数密度分布专题图,这里用点密度专题图方式来渲染地图,生成的点的总数代表它的数值,显示区域内树木的株数密度,其中平均每个点代表6.7株树。
  结果如图8-12所示。
  三、访问远程数据库中的数据
数据库实例名是什么意思  MapInfo表中有一类特殊的表叫做链接表,它是在访问远程数据库数据时,从远程数据库中下载得到的。用于保持与远程数据库的连接,以对远程数据库进行操作。
  1.ODBC驱动程序和配置数据源
  为了正常使用MapInfo ODBC,需要在系统环境中加载ODBC管理器,并在运行ODBC管理程序后,添加访问该数据库管理系统的ODBC驱动程序。可以使用的ODBC驱动程序类型有:MS Access Driver、MS dBase Driver、Ms FoxPro Driver、MS Excel Driver、 Ms Paradox Driver、 Ms Text Driver、 SQL Server、用于Oracle的微软ODBC驱动器等,也可以安装其它ODBC驱动程序。
  从不同的数据库中访问数据时,必须为每个要访问的数据库建立一个ODBC数据源,即是该数据库和访问它所需的信息。配置数据源是把ODBC驱动程序同数据源联系起来,每个数据源用一个独特的名字来标识。
  例如:有一个用Microsoft Access97数据库建立的森林多种资源的数据库,它包括了林木资源、矿产资源、水资源、野生动物资源和珍稀植物资源等数据表,为它建立一个ODBC数据源时,按以下步骤进行:
  ·在“文件”菜单上选用“ODBC数据源”命令,在弹出的“选定数据源”对话框中,选择“机器数据源”页框;
  ·点中“新建”按钮,弹出“创建数据源”对话框,选择“数据源类型”,有用户数据源和系统数据源两种类型可供选择。其中用户数据源只有创建者才能使用,系统数据源则是登录的任何用户均可用。这里选择“用户数据源”;
  ·选择“MS Access97 Database”驱动程序来安装数据源,点中“完成”按钮,弹出“ODBC Microsoft Access97安装”对话框;
  ·用“选取”按钮选择数据库,给数据库命名并对它进行描述。可在“选项”和“高级”按钮弹出的对话框中设定数据库只读、登录ID和应用程序名等(如图8-13),选中“确定”按钮,则结束ODBC数据源的建立。这时“ODBC数据源”对话框上的“机器数据源”页框中出现名称为“resource”的数据源,类型为“用户”。
  2.建立链接表
  链接表是一种特殊的MapInfo表,它从远程数据库中下载并保持与相应远程数据库表的链接,该远程数据库表被称为“ODBC表”。对于普通MapInfo表所作的大多数操作也能在链接表中执行,如查询、编辑、复制、保存和重新命名,与在系统中创建的表完全一样,但有些操作不能进行,比如不能紧缩表,也不能修改表的结构。
  建立相应的ODBC数据源后,才能进行下载链接表的操作,其步骤为:
  (1)连接数据源;
  (2)从已连接的数据源中选择要下载哪张表(图8-14);
  (3)从表中选择要下载哪些列;
  (4)从表中选择要下载哪些行;
  (5)在本地把表作为链接表保存到MapInfo。
  用户可以使用标准ODBC SQL语法输入比向导所允许的更复杂的查询,并通过它生成下载表。
  本例中选择“林木资源”数据表来作为下载表,得到图8-15“林木资源”的链接表。
  3.解决数据冲突
  因为链接表中记录来自远程数据库,所以当MapInfo把表下载后,用户在链接表中修改数据的同时,可能其他用户也在远程数据库中改变或删除相应记录,这使得远程数据库中的数据和要上载到该远程数据库的新数据之间产生冲突。
  当产生冲突时,则自动出现“解决冲突”对话框,如图8-16所示。用户根据对话框上的提示信息查看哪些数据记录有问题,通过选择对话框右边的单选框来决定使用哪一个表中的数据。


  在关闭表文件时,系统发现数据发生了变化,如图8-17所示弹出一个对话框。让用户决定如何处理发生变化的数据,选择第一项“保存MapInfo表的改动”则系统只保存链接表,不更新ODBC表;选择第二项系统既保存链接表,同时更新ODBC表;选择第三项系统放弃对数据的修改。
  4.使远程ODBC表在MapInfo中可地图化
  任何MapInfo表都可显示在浏览窗口中,但是只有可地图化的表有附加地图信息,并能显示在地图窗口中。在“表”菜单下“维护”子菜单中的“使ODBC表可地图化”命令,使远程ODBC表在MapInfo中可地图化,但需要从远程数据库表中提供以下信息:
  (1)包含使该表成为地图的坐标值的列;
  (2)远程数据表使用的投影;
  (3)来自远程数据库表的空间索引列;
  (4)对象使用的符号。
  这些信息存储在称为MapInfo Map Catalog的表中,使用ODBC表时,需检查该表是否可地图化。
  5.刷新链接表
  用驻留在对应于链接表的远程数据库中的最新数据刷新该链接表,其操作为:
  (1)选择表—>维护—>刷新ODBC表,出现刷新表对话框;
  (2)从刷新表列表中选择要刷新的表名;
  (3)选择“确定”,指定的表被刷新,表中的数据与ODBC表的最新数据保持一致。
  6.断开与远程数据库的链接
  用表—>维护—>断开ODBC表连接命令断开表与相应远程数据库的连接,其操作为:
  (1)选择表—>维护—>断开ODBC表连接,出现断开表连接对话框;
  (2)从断开与表的连接列表中选择要断开连接的表名;
  (3)选择“确定”,断开连接。