论文部分内容阅读
摘要:在低成本地理信息系统开发过程中,合适的电子矢量化地图的获得往往不太容易或费用高。文章介绍了栅格地图矢量化的原理和常用方法,并提出了一种利用矢量化软件R2V,实现由印刷地图制备矢量地图的简单快速的方法,在小型GIS开发中具有较高的实用价值。
关键词:矢量化;地理信息系统;R2V软件
中图分类号:P391 文献标识码:A 文章编号:1009-3044(2007)05-11283-01
1 引言
在开发GIS(地理信息系统)过程中必须经历的一个重要步骤,就是获取“合适”的电子矢量地图。这里的“合适”一词具体来说包含以下四层含义:合适的地图区域、合适的地图比例尺、合适的矢量分层设置以及合适的矢量地图成本。在开发一些小型的、经济型的GIS系统、学习性质的GIS系统时,要找到满足以上四个含义的矢量地图往往不太容易。实际的情况是:在不同的应用中,需要不同比例尺、不同地域或不同版本的矢量地图,但是容易找到相应的纸质地图,却很难有合意的电子矢量地图,商业公司提供的电子地图要么比较昂贵,要么比例尺太小,而且还不是每个目标地区的地图都能找到。如果能从相应的印刷纸版地图获得需要的电子矢量地图,上面的问题就获得了很好的解决。
2 常见的地图的矢量化技术简介
目前,印刷纸版地图矢量化的方法主要有以下两种:一是手扶跟踪数字化、二是利用矢量化软件数字化。
所谓手扶跟踪数字化,是指依据屏幕上的栅格图像,通过手动跟踪来创建矢量对象。该方法工作量十分巨大,而且容易出错,较难以达到要求的精度,并且数字化的周期较长。这些缺点决定了该方法在实际应用中不是很广。
采用专业的矢量化软件来获取矢量化地图,可以在很短的时间内完成数字化工作,并且可以达到较好的精度。通过该方法完成印刷地图矢量化的过程如图1所示:
图1利用矢量化软件的矢量化过程
3 利用MapInfo和R2V实现印刷地图的快速矢量化
下面以笔者在开发《基于GIS的CRM系统》时制作矢量化地图的方法为例。
3.1 扫描
首先选取武汉市的1:2万比例尺的城市地图一张,用扫描仪将其扫描成电子版的栅格地图。注意,这里会遇到一个问题,那就是:一般需要的印刷纸版地图的幅面比较大,常用的扫描仪不能一次全部将其扫描下来。怎样解决这个问题呢?我们可以将地图分成若干个部分,分别扫描。比如,笔者将武汉市的地图分成了3行3列共9个方格分别进行扫描。对于每两个相邻的方格,应多扫描一定的重叠部分,为将来的拼接处理留下余地,这一点类似于机械加工中的加工余量。
3.2 拼接和预处理
待扫描完成后,可以使用图像处理软件把得到的小幅地图拼接成完整的地图。推荐在Photoshop中完成拼接工作,因为Photoshop在处理图像上具有功能强大和技术成熟的特点。在拼接处理过程中,根据相邻地图之间相应的元素的位置对接好。该工作只需要多一点细心,难度不大。
拼接成一幅完整地图后,为了得到更好的矢量化效果,需要对其进行预处理,即在Photoshop中将栅格地图上的文字标注等符号尽可能擦去(如图2所示)。
图2 擦除栅格地图中的文字和标注符号(左图是擦除前的效果)
3.3 矢量化处理
拼接完成后,就得到了一幅适合的电子版栅格地图,就可以开始对地图进行矢量化了。这里推荐采用美国Able Software公司的R2V进行矢量化。R2V是美国Able Software公司在测绘、制图和GIS领域类的矢量化软件,为用户提供了全面的自动化光栅图像到矢量图形的转换,它可以处理多种格式的光栅(扫描)图像,是一个可以用扫描光栅图像为背景的矢量编辑工具。R2V提供简便及完整的将光栅图像数字化为矢量数据的解决方案。整个的光栅图像矢量化过程可以是全自动的且不需要人工干预(也可选人工干预)。你仅需要将扫描图像显示在屏幕上并选择矢量化命令,所有的线段在数秒钟即可识别出来并显示在图像上供你校正与编辑[1]。笔者采用的R2V是一个试用版,但对于本文讨论的问题来说已经足够了。
接下来详细介绍矢量化处理步骤:
(1)在R2V中打开处理好的栅格地图,点击菜单项“图像”>“颜色属性”,打开“提取颜色属性”对话框。再在地图中的一种地图元素上并画一小矩形(如图3的河流上的小矩形框),在对话框中点“添加”,然后点击“矢量化”按钮。在弹出的对话框中的“提取线段为”选中“边界线”,然后就可以点击“开始”按钮开始矢量化。
图3 提取某一地图元素并矢量化示意图
(2)矢量化完成后,点击菜单“文件”>“输出矢量”,打开“另存为”对话框。选择文件类型为“.dxf”,输入文件名(这里因为是对武汉市地图中的河流和湖泊等水系进行矢量化,暂取名为“shuixi”)保存。这样就矢量化了地图中的一类元素。分别对地图中的其他元素进行同样的处理,就得到了各个图层(不同元素一般放在不同图层中)的矢量文件。
(3)在MapInfo中,选择菜单“工具”>“地图向导工具”>“运行地图向导工具”,打开“Mapping Wizard Tool”对话框(如图4),选择“2.Maps”>“Inport Map(*.mif,*.dxf,*.mbi,*.mmi,*.img)”,然后点击“Open…”按钮,在弹出的对话框中选择上一个步骤中创建的一个.dxf文件,选中合适的投影并取名后,就可以导入创建为MapInfo支持的地图格式[2]。例如选择导入前面的“shuixi.dxf”就完成了地图中水系这一地图元素的矢量化工作[3]。
图4 用MapInfo工具导入“.dxf”矢量文件
同样的做法,将所有的.dxf文件都导入并转化为MapInfo支持的相关矢量文件。可能的话,还需要在MapInfo中对各个图层进行一定的修改,并对照原栅格图进行适当的标注等工作。这样就得到了印刷地图的电子矢量地图。该方法制作出的矢量地图由于在制作过程中就进行了适当的分层,所以省去了再分层的工作。在实际使用中,还可以让矢量地图跟相应的栅格图配准来一起使用,把栅格图层放在最低层,就可以使地图的效果更逼真。配准工作也可以通过MapInfo来完成,这里就不介绍了。
4 小结
为了解决在中、小型和低成本的地理信息系统应用开发中的电子矢量地图不易获得或者花费过高等问题,本文提出了一种由印刷的纸版地图获取电子矢量地图的方法:通过将纸版地图扫描并使用Photoshop处理得到电子栅格地图,然后用R2V矢量化为矢量地图。该方法简单易行,成本经济,工作量小,精度较高,能快速取得GIS项目需要的合适的电子矢量地图,为项目开发的顺利实施提供有力的基础保障。
参考文献:
[1]Able Software Corporation. Able R2V User’s Reference, 2004. Available via http://www.ablesw.com/r2v/index.html
[2]罗云启,罗毅. 数字化地理信息系统MapInfo应用大全[M]. 北京:北京希望电子出版社,2001. 12-56.
[3]齐锐,屈韶琳,阳琳赟. 用MapX开发地理信息系统[M]. 北京:清华大学出版社,2003. 255-260.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:矢量化;地理信息系统;R2V软件
中图分类号:P391 文献标识码:A 文章编号:1009-3044(2007)05-11283-01
1 引言
在开发GIS(地理信息系统)过程中必须经历的一个重要步骤,就是获取“合适”的电子矢量地图。这里的“合适”一词具体来说包含以下四层含义:合适的地图区域、合适的地图比例尺、合适的矢量分层设置以及合适的矢量地图成本。在开发一些小型的、经济型的GIS系统、学习性质的GIS系统时,要找到满足以上四个含义的矢量地图往往不太容易。实际的情况是:在不同的应用中,需要不同比例尺、不同地域或不同版本的矢量地图,但是容易找到相应的纸质地图,却很难有合意的电子矢量地图,商业公司提供的电子地图要么比较昂贵,要么比例尺太小,而且还不是每个目标地区的地图都能找到。如果能从相应的印刷纸版地图获得需要的电子矢量地图,上面的问题就获得了很好的解决。
2 常见的地图的矢量化技术简介
目前,印刷纸版地图矢量化的方法主要有以下两种:一是手扶跟踪数字化、二是利用矢量化软件数字化。
所谓手扶跟踪数字化,是指依据屏幕上的栅格图像,通过手动跟踪来创建矢量对象。该方法工作量十分巨大,而且容易出错,较难以达到要求的精度,并且数字化的周期较长。这些缺点决定了该方法在实际应用中不是很广。
采用专业的矢量化软件来获取矢量化地图,可以在很短的时间内完成数字化工作,并且可以达到较好的精度。通过该方法完成印刷地图矢量化的过程如图1所示:
图1利用矢量化软件的矢量化过程
3 利用MapInfo和R2V实现印刷地图的快速矢量化
下面以笔者在开发《基于GIS的CRM系统》时制作矢量化地图的方法为例。
3.1 扫描
首先选取武汉市的1:2万比例尺的城市地图一张,用扫描仪将其扫描成电子版的栅格地图。注意,这里会遇到一个问题,那就是:一般需要的印刷纸版地图的幅面比较大,常用的扫描仪不能一次全部将其扫描下来。怎样解决这个问题呢?我们可以将地图分成若干个部分,分别扫描。比如,笔者将武汉市的地图分成了3行3列共9个方格分别进行扫描。对于每两个相邻的方格,应多扫描一定的重叠部分,为将来的拼接处理留下余地,这一点类似于机械加工中的加工余量。
3.2 拼接和预处理
待扫描完成后,可以使用图像处理软件把得到的小幅地图拼接成完整的地图。推荐在Photoshop中完成拼接工作,因为Photoshop在处理图像上具有功能强大和技术成熟的特点。在拼接处理过程中,根据相邻地图之间相应的元素的位置对接好。该工作只需要多一点细心,难度不大。
拼接成一幅完整地图后,为了得到更好的矢量化效果,需要对其进行预处理,即在Photoshop中将栅格地图上的文字标注等符号尽可能擦去(如图2所示)。
图2 擦除栅格地图中的文字和标注符号(左图是擦除前的效果)
3.3 矢量化处理
拼接完成后,就得到了一幅适合的电子版栅格地图,就可以开始对地图进行矢量化了。这里推荐采用美国Able Software公司的R2V进行矢量化。R2V是美国Able Software公司在测绘、制图和GIS领域类的矢量化软件,为用户提供了全面的自动化光栅图像到矢量图形的转换,它可以处理多种格式的光栅(扫描)图像,是一个可以用扫描光栅图像为背景的矢量编辑工具。R2V提供简便及完整的将光栅图像数字化为矢量数据的解决方案。整个的光栅图像矢量化过程可以是全自动的且不需要人工干预(也可选人工干预)。你仅需要将扫描图像显示在屏幕上并选择矢量化命令,所有的线段在数秒钟即可识别出来并显示在图像上供你校正与编辑[1]。笔者采用的R2V是一个试用版,但对于本文讨论的问题来说已经足够了。
接下来详细介绍矢量化处理步骤:
(1)在R2V中打开处理好的栅格地图,点击菜单项“图像”>“颜色属性”,打开“提取颜色属性”对话框。再在地图中的一种地图元素上并画一小矩形(如图3的河流上的小矩形框),在对话框中点“添加”,然后点击“矢量化”按钮。在弹出的对话框中的“提取线段为”选中“边界线”,然后就可以点击“开始”按钮开始矢量化。
图3 提取某一地图元素并矢量化示意图
(2)矢量化完成后,点击菜单“文件”>“输出矢量”,打开“另存为”对话框。选择文件类型为“.dxf”,输入文件名(这里因为是对武汉市地图中的河流和湖泊等水系进行矢量化,暂取名为“shuixi”)保存。这样就矢量化了地图中的一类元素。分别对地图中的其他元素进行同样的处理,就得到了各个图层(不同元素一般放在不同图层中)的矢量文件。
(3)在MapInfo中,选择菜单“工具”>“地图向导工具”>“运行地图向导工具”,打开“Mapping Wizard Tool”对话框(如图4),选择“2.Maps”>“Inport Map(*.mif,*.dxf,*.mbi,*.mmi,*.img)”,然后点击“Open…”按钮,在弹出的对话框中选择上一个步骤中创建的一个.dxf文件,选中合适的投影并取名后,就可以导入创建为MapInfo支持的地图格式[2]。例如选择导入前面的“shuixi.dxf”就完成了地图中水系这一地图元素的矢量化工作[3]。
图4 用MapInfo工具导入“.dxf”矢量文件
同样的做法,将所有的.dxf文件都导入并转化为MapInfo支持的相关矢量文件。可能的话,还需要在MapInfo中对各个图层进行一定的修改,并对照原栅格图进行适当的标注等工作。这样就得到了印刷地图的电子矢量地图。该方法制作出的矢量地图由于在制作过程中就进行了适当的分层,所以省去了再分层的工作。在实际使用中,还可以让矢量地图跟相应的栅格图配准来一起使用,把栅格图层放在最低层,就可以使地图的效果更逼真。配准工作也可以通过MapInfo来完成,这里就不介绍了。
4 小结
为了解决在中、小型和低成本的地理信息系统应用开发中的电子矢量地图不易获得或者花费过高等问题,本文提出了一种由印刷的纸版地图获取电子矢量地图的方法:通过将纸版地图扫描并使用Photoshop处理得到电子栅格地图,然后用R2V矢量化为矢量地图。该方法简单易行,成本经济,工作量小,精度较高,能快速取得GIS项目需要的合适的电子矢量地图,为项目开发的顺利实施提供有力的基础保障。
参考文献:
[1]Able Software Corporation. Able R2V User’s Reference, 2004. Available via http://www.ablesw.com/r2v/index.html
[2]罗云启,罗毅. 数字化地理信息系统MapInfo应用大全[M]. 北京:北京希望电子出版社,2001. 12-56.
[3]齐锐,屈韶琳,阳琳赟. 用MapX开发地理信息系统[M]. 北京:清华大学出版社,2003. 255-260.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。