如何"数字化"一幅地图
山东郓城一中 范中稳 邮编:274700
http://www.zsedu.net.cn/news/2003/2/8/094809am.html
经常使用计算机打印题单的地理老师们常常为绘制繁索的地图而苦恼,扫描地图如果不放大(缩小)还好,一放大(缩小)就容易变形。如果将扫描地图数字化(或矢量化)则可解决变形问题。那么如何数字化(或矢量化)一幅地图呢?笔者结合自已的制作体会,介绍给各位地理同仁:
如何"数字化"一幅地图
山东郓城一中 范中稳 邮编:274700
经常使用计算机打印题单的地理老师们常常为绘制繁索的地图而苦恼,扫描地图如果不放大(缩小)还好,一放大(缩小)就容易变形。如果将扫描地图数字化(或矢量化)则可解决变形问题。那么如何数字化(或矢量化)一幅地图呢?笔者结合自已的制作体会,介绍给各位地理同仁:
Mapinfo
Professional为用户提供了一种非常简单而有效的屏幕数字化地图的方法。要数字化(矢量化)一幅地图,首先必须将纸质地图扫描到计算机中。但由
于计算机视窗范围的限制,或是由于扫描仪功能影响,有时一幅大纸张地图需分幅进行扫描,然后再进行拼接。具体地讲,可以有两种办法来解决这种地图的分幅、
拼接与数字化(矢量化)问题。
方法一:
1. 根据扫描仪扫描窗口的大小将纸质地图分成若干幅,并分别扫描。(在分幅时,要注意每张分幅图与另一张分幅图在边缘之间应有一定的重叠。)
2. 利用图像处理软件(Coredraw, Photoshop等)将分幅扫描进去的各个位图重新拼接成一张完整的位图。
3. 在Mapinfo 中将拼接好的完整的图幅打开,并进行配准,其后便可以利用Mapinfo所提供的绘图工具对其进行数字化(矢量化)。
该方法的不足之处在于:当将所有的分幅位图拼接成一张完整的光栅位图时,整个位图可能会达到几十兆甚至几百兆。因而,在配准并数字化(矢量化)地图过程
中,其显示速度可能会较慢,影响正常的数字化工作。因此,当位图很大时,应当采用如下的第二种方法,先将每幅小的位图分别进行数字化(矢量化),然后再在
Mapinfo中将数字化(矢量化)好的每幅小图拼接起来。
方法二:
1. 同方法一的第一步。(注意在扫描之前,应当首先在纸质底图上打上格网线,以便将来用作数字化(矢量化)时的边界线)。
如果无法直接在纸质地图上打格网线,也可以先将分幅扫描的位图利用位图处理程序拼接起来,再在位图处理程序中将拼接好的整张地图重新分割开来。
2. 将每幅位图分别在Mapinfo中打开,配准并数字化(矢量化)。(数字化时,应注意以每个图幅的格网线为界。)
3. 矢量(数字化)图层的合并
(1) 打开所有的分幅矢量(数字化)图层。
(2) 利用Mapinfo Professional的向表中添加行的方法将分幅的某一图层的所有对象添加到另一指定图层中L-layer(L是location的缩写其中文意思是定位)。
(3)
重复步骤(2)直到将所有的分幅图层都合并到指定图层中。如果分幅图层很多时,手工操作非常麻烦,这时也可以编写一段简单的MapBasic程序来完成上
述的重复手工操作。具体如下: Dim I as integer Open table "..\L-layer.table" For I=1
to 100 Open table "..\layer" & I Insert into L-layer selelct *
from"layer"& I Next 这时所有分幅图层中的空间对象都被合并到了一个指定图层中(L-Layer)。
4.矢量 (数字化)图层的拼接
经过上述步骤虽然已将所有图层合并到了一个图层中,但来自不同分层中的同一空间对象(例如一条横跨几个分区的铁路)还是分块存在的。如何才能将这些空间对象合并成一个对象呢?
(1) 使图层可编辑,找出同一个空间对象(例如铁路)在边界处的两个端节点。
(2) 按下S键,将鼠标设成抓取模式,选中该空间对象的一个端节点,按下鼠标左键将该节点拖动到另一个端节点上,使与之重合。
(3) 利用Mapinfo Professional提供的合并对象功能,便可以将该空间对象的两个分段合并成一个对象。
(4) 按照上述步骤,将所有应该合并的对象进行合并。 至此,整幅地图的拼接工作全部完成。同样对上述合并对象过程中简单而机械的手工操作也可以自己编写一个MapBasic 程序来完成,从而实现对象的自动合并。
将数字化(或矢量化)好的
地图保存好,你会经常用到它。相信随着"制图"技术的提高,你一定会从"绘图"的苦海里解放出来
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=1277052