gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:1953回复:1

面状地物名称注记的自动配置研究

楼主#
更多 发布于:2003-09-14 13:39
摘 要:本文介绍了作者自行开发的地图汉字自动注记系统中,面状要素注记的自
动配置算法。重点讨论了点水平切割中点线法求多边形骨架线的算法。试验证明,该算
法简单实用,对大多数多边形的处理结果较理想。最后作者也给出了对一些特殊多边形
的处理方法。
  关键词:面状要素;自动配置;骨架线
A Research on Automatic Placement of Geo-Name in Area Feature
DU Rui-ying, LIU Jing-nian
(Wuhan Technical University of Surveying and Mapping,Wuhan,Hubei,430079)
1 前 言
  地图注记在地图的制作过程中是一项重要的工作。普通地图的使用价值在很大程度
上取决于图面上大量的名称注记。面状注记是地图注记中的一个组成部分,是对水域、
行政区域或统计区域等的注记。
  目前,国外在地图自动注记方面作了较深的研究,取得了很大的成果。如美国人口
调查局研制的自动注记定位系统,对1990年人口统计图作了成功的注记。在该系统中,
对面状要素的注记采用的是等距切割中点线法,求取多边形走向线,实行注记定位。
  由于中西文的应用差别,不能直接把国外的注记系统引入到我国的地图制作上。所
以近年来,国内在这一方面也作了不少研究,取得了很大进展,但在实际应用中仍在不
同程度上存在问题,特别是面状注记方面尤为欠缺。
  本文所讨论的面状注记定位算法,是作者经过大量试验所验证的一种简单快速实用
的方法。
2 有关概念定义
2.1 骨架线的概念
  面状要素是由多边形成的,它的注记是沿多边形的骨架线进行的。所以面状要素注
记的关键是寻找多边形的骨架线。所谓骨架线就是沿多边形走向的一条曲线。
2.2 多边形的分类
  人们一般习惯于看水平或垂直的面状注记,但并不是每个多边形都是沿水平或垂直
方面注记的,我们称沿水平或垂直注记的多边形为规则多边形,否则为不规则多边形。

2.3 规则多边形的注记
  如果一个多边形比较规则,则通过过其外接矩形中心点的水平或垂直切割线来代替
骨架线,然后沿骨架线实行注记,如图1所示。
图1
Fig.1
3 不规则多边形的注记
  对于不规则多边形的注记,关键是找出多边形的骨架线,求骨架线的算法有多种,
如等距离切割中点线法(如图2所示)。本系统采用的是点水平切割中点线方法,这一方
法是过多边形边上任一坐标点作水平切割,然后取水平切割线段中点,最后把所有中点
连接起来就找出了多边形的骨架线,如图3。
图2        图3
Fig.2        Fig.3
3.1 多边形的预处理
  多边形是由数字化的链段组成的矢量数据。为了保持多边形数据的精确性,数字化
的密度很大。多边形的精确性高,也带来了许多不利因素,比如处理时间太长,耗费空
间大。所以在不影响大致轮廓的情况下,进行一次预处理是有必要的。图4是“潮汕行政
区划图”饶平县地区多边形。该多边形由200多个点组成,密度比较高。对多边形预处理
就是从起点坐标开始,采用一些现成的方法,压缩掉非特征点,这样即可得到一个新的
多边形。图5(a)是预处理后所得的多边形。
3.2 多边形的修整
3.2.1 修整1
  经过多边形预处理后得到的多边形还不能采用水平或垂直切割线来切割。因为此时
的多边形用水平线或垂直线切割时可能产生两个以上的交点,这样不能确定到底取哪两
点的中点坐标。如图6该多边形一水平切割线与多边形交于三点(2,6,7),垂直切割
与多边形交于四点(3,4,1,5)。产生这两种情况是因为多边形在X方向和Y方向上都
有极点(极点是指它的前驱点和后继点Y(X)坐标同时小于或大于该点Y(X)坐标点)
存在。如图6的j点是Y方向上的一极点,i点是X方向上的一极点。要用水平或垂直线切割
,不致于产生两个以上交点,首先应抹去这些极点。
图4
Fig.4
图5
Fig.5
图6      图7
Fig.6      Fig.7
  下面针对用水平切割线求多边形骨架线的过程进行阐述。水平切割所采用的处理技
术,同样适合于垂直切割处理。如图7先找出最大最小Y坐标点,设为maxY,minY(maxY=2
0,minY=10),这样把多边形分成左右两条链段。由maxY及其后继点到minY组成的链段称为
左链。先对右链进行处理、搜索右链,找出Y方向极点22,作一水平切割线,找出与极点
最近的左右坐标点,组成两个块分别为pg1和pg2(见图中阴影部分),
计算两个块面积。若子块一面积大于4倍子块2面积,则去掉子块2;反之去掉子块1。若
子块1和子块2面积不满足以上关系,则都应去掉。采用上述方法对图4的处理过程见图5
的(a~g)。
3.2.2 修整2
  多边形经过修整以后,从最高点到最低点之间不存在极坐标点(不包括该两点),
但很有可能连续两点Y坐标相同如图5(g)中点9与点10坐标相同。经过点9的水平切割线
与左链相交点为cor,那么点9、点10和cor点同在一条直线上,不能确定中点坐标。
  对于修整一处理过的多边形一般都会出现这种情况。对于这种情况处理的好坏,直
接影响多边形骨架线的定位。
  为了处理这种情况,采取如下补偿方法:从最高点开始靠近右链搜索,判断该点与
其后继点之间的Y坐标是否相同。若相同,则后继点的Y坐标减去20;否则搜索下一点,
直到搜索到最低点为止。再对左链进行同样的处理。图5(h)是对图5(g)处理后的多
边形。显而易见,多边形形状变化不大,这样处理后的多边形,其水平切割线有且只有
两个交点。
  对多边形作预处理、修整处理后,多边形具有在水平切割线上有且只有两个交点的
特性,且已忽略了影响多边形骨架线定位的次要部分。这样就可用水平切割线对多边形
进行切割处理了。
3.3 求骨架线及其平滑
  从最高点沿右链开始,对每一点作水平切割线,找出与左链的交点,取该点与左链
交点之间的中点,放在骨架线点集中。再沿左链开始,对每一点作水平切割线,找出与
右链的交点,取该点与右链交点之间的中点,放入骨架点集中。骨架线是骨架点在Y方向
上从大到小顺序连线而成。图8(a)是图5(h)处理得到的含有骨架线的多边形。
图8
Fig.8
  经上述步骤所求骨架线,点的密度并不均匀。采用两点中点的方法,对骨架线进行
平滑,在一定程度上可以解决这一问题。图8(b)是图8(a)经平滑后得到的结果。
  得到骨架线后,沿骨架线根据区域汉字名确定注记配置的位置。等分点上是否能配
置注记,根据注记规则来判断,如果不能注记,那么沿骨架线,在一定范围内,上、下
、左、右等方向上做适当移动,寻找可注记位置。
4 特殊多边形骨架线的求法
4.1 凹状多边形
  在试验过程中发现,点水平切割线对月牙形多边形的处理不很理想。因为在进行多
边形修整时,对该类多边形的取舍太多。建议对该类多边形采用水平和垂直两个方向上
兼用的等距离切割法,求其骨架线,如图9所示。
图9
Fig.9
4.2 重叠多边形
  所谓重叠多边形就是一个多边形中还包含另外的多边形,如图10所示。
图10
Fig.10
Fig.10
  对于这种情况首先求两个多边形的包含关系,这里多边形Ⅰ包含多边形Ⅱ。然后求
多边形Ⅰ的骨架线Ⅰ。骨架线Ⅰ很可能穿过多边形Ⅱ。根据多边形Ⅰ的名称字数沿骨架
线Ⅰ求出注记定位点。如果定位点落在多边形Ⅱ中,求出多边形(GacH)和多边形(aE
Fc)的面积,比较两面积大小,求出较大多边形的骨架线Ⅱ,平分该骨架线,求出新的
定位点。
5 试验结果
  根据注记原则,按照上述注记算法,选用我国某地区1∶50万的地图,经数字化输入
编辑,形成该地区的地图数据库。在该数据库的基础上,编制了一套试验程序。该程序
对该地图进行了注记,定位准确,速度较快。
喜欢0 评分0
eeleo_Lion
论坛版主
论坛版主
  • 注册日期2003-11-29
  • 发帖数1798
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-10-30 22:17
<P>感谢楼主</P><img src="images/post/smile/dvbbs/em02.gif" />
人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部