当前位置:文档之家› 地图符号系统的设计与实现

地图符号系统的设计与实现

page 1
了多个图元类对象组成一个符号 , 如把点状符号 抽象成点 、 、 圆 圆弧 、 、 椭 圆 矩形 、 多边形 、 线串 、 样条曲线等基 本图元类 [5 ] 等 , 分类较为繁杂 。本文将各种图元进行总结 后 ,只分成点图元 、 线图元和面图元三个图元类 ,各种基本图 形都在类中用 方法实现 , 如点图元包括三角形 、 矩形 、 菱形 、 扇形 、 圆弧 、 椭圆 、 正 多边形等 , 线图元包括折线 、 曲线 , 面图 元包括边界分别为折线和曲线的多边形 两种 。结构相对简 单 ,可扩充性强 。 1. 2 符号的分类组织 2 地图符号的设计与实现 各种图元的编辑功能 ,从而减轻了点 、 、 线 面符号设计时的压 力 。在各种比例尺下 , 大部分符号都是规则的 , 可以在点状 号 ,以程序符号 方式实现 。而且 , 一般中小比例尺的符号比 大比例尺符号更抽象 , 其特殊符号相 对较多 , 如沼泽符号在 1∶ 000比例尺中要比 1∶ 000 ,1∶ 000 中复杂得多 。 250 1 2 符号 、 线状符号 、 面状符号分别实现 , 少部分相对特殊的符 采用面向对象的方法设计系统 ,通过对三类符号之间的 关系分析可知 : 每一个 点 、 线状符号都是点 、 、 线 面图元的有 序集合 。面状符号是由轮廓线和内部 填充方式决定的 ,其内 项目来源 : 国家 863 计划” “ 资助项目 (2002AA131030) 。 int nAsymNum ; ΠΠΠ面符号数 ΠΠΠ int nLsymNum ; ΠΠΠ线符号数 Π ΠΠ int nPsymNum ; ΠΠΠΠ ΠΠΠ点符号数 在地图符号系统中 , 按点 、 、 线 面设计地图符号 , 强调了 26 测绘信息与工程 Journal of Geomatics 2004 Dec. ; 29 (6) 和图元 2 ( 竖短线 ) 线图元组成 。陡坎横线图元属性可重复 、 不可变长 、 可变形 、 不渐变或不可重复 、 可变长 、 可变形 、 不渐 变 ; 竖线图元属性 : 可重复 、 不可变长 、 不可变形 、 不渐变 。图 元 1 的附加属性设置情况可以和图元 2 一 样具有可重复性 , 但也可把它设置成可变长 ,在这两种附加属性设置都可满足 符号 绘制要求时 , 选择可变长属性配置速度更快 , 因为可变 长属性决定配置方法是将图 元单位长度拉长到地理目标实 [6 ] 2. 1 点状符号 点状符号具有明确的定位点和方向 , 形状一般比较规 则 ,基本上都是各种图元 的组合 。点状符号的设计重点在组 成各种图元的设计 。点状符号中包含了一些有向 点符号如 独立大坟 、 烟囱等 ,对地物的方位有指示作用 。为此 ,系统提 供了点状 符号 0° 360° ~ 之间的旋转功能 。 2. 2 线状符号 线状符号的设计和实现在模板方法 的基础上进行了 际长度 ,一步到位 ; 而可重复性决定符号采用重复配置方法 , 即将线符号分解 成基本线符号单元 ,然后沿线符号定位线连 续绘制线符号单元 。其特点是能够表达 几乎任何的复杂线 符号 。但是由于每次绘制时都要将局部坐标系下的线符号 单元坐 标映射到实际地理坐标系中 ,绘制效率受到定位线的 弯曲和线符号单元复杂程度的影 响 。增加可变长属性的设 置选择就是对重复配置方法的改进 ,提高那些既可重复又 可 变长符号的配置效率如双线路 、 电力线等 。对于半依比例的 天桥符号来说 ,中 间的矩形图元只能是可变长的而不能是可 重复的 ,两侧的阶梯符号是不可重复也不变 长的 , 如图 1 ( c ) 和图 1 ( d) 所示 。 改进 ,提出了线状符号附加属性设置 , 即先得到线状符号的 最小符号单元及其 长度 , 这个单元就是符号配置的模板 , 然 后对组成模板的各种图元的附加属性进行 设置 ,属性决定了 各图元在符号配置时的绘制方式 。 附加属性包含重复性 、 变长
page 2
性 、 变形性和渐变性 。重复 (变长Π 渐变) 性又分为不可重复 (变长Π 渐变) 、 X ( 水平) 方向 沿 可重复 (变长Π 渐变) 、 Y (垂直) 方向可重复 (变长Π 沿 渐变) 。 线状符 号图元附属属性设置实例如图 1 所示 。一个符 号变长与重复属性两种不可能兼得 。以陡坎为例 ,如图 1 ( a ) 和图 1 ( b) ,陡坎符号单元由单位长度的两个图元 1 ( 横短线 ) 图1 线状符号图元附属属性设置实例 变形性主要是指在符号转弯处的图元形状变化情况 ,可 分为不可变形 、 折线 变形 、 曲线变形三种 。 渐变性主要针对具有渐变元素的特殊符号 ,如河流的渐 变 元素是宽度 ,渐变属性是沿 X 方向渐变的 ; 再如沙质崩崖 中的圆形沙粒符号的半径 大小则是垂直于符号轴线方向逐 渐变小的 ,其渐变元素是半径 ,渐变属性是沿 Y 方 向渐变的 。 另外 ,对于符号本身变形也随着数据采集方法不同而各有差 异 ,如果是 折线采集 ,则符号本身是折线变形的 ,如果是曲线 采集 ,则符号本身是曲线变形的 。 2. 3 面状符号 采用了分层填充的思想 , 用户可设置不同的点 、 线状符号分 层填充一个面状 符号 。 2. 4 程序符号 地图符号中有一部分符号是不能用上述一般规则来描 述的 ,如整个河系的粗细 渐变一致性 、 小比例尺沼泽符号中 短线组合其形态随意中又带有一种曲线美的特性 、 垄状沙丘 中沙丘的随机性等 。虽然现在地图符号的发展趋向于抽象 化、 简洁 化和规范化 [11 ] ,但是这些符号还是必须保留的 。首 先在视觉上 ,这些符号更接 近于所表达的地理实体 , 更能表 达自然现象的规律 。如新月形沙丘就是地图设计人 员根据 航片上拍下来的沙丘形状进行模拟抽象的 ,直观形象的表达 效果优于用规则 图案组成的简单符号 ; 其次从艺术性看 , 地 图具有科学美和艺术美的双重性 ,符号 设计时既要考虑到规 范简洁又要考虑到艺术性 ,所以有必要对这些符号进行设计 和 实现 。 在地图符号系统中 ,把这些特殊的符号都定义为程序符 号来实现 。特殊符 号的实现如图 2 所示 。图 2 ( a) 制作新月 面状符号由线状符号构成其轮廓线 , 点 、 线状符号的各 种不同排列方式构成 其内部填充 ,面状符号的填充方式有规 则填充 、 随机填充 、 半随机规则填充 、 晕线填充和位图填充 5 种 。在不考虑点 、 线状符号的具体结构 ,只考虑点 、 线 状符号 方向的情况下 ,先将各种配置方式制作成模板 , 用户选定后 再选择所需配置 的点 、 线状符号 。针对当前某些符号库系统 不能处理含有多种点填充符号以不规 则填充方式的情况 [4 ] , 图2 特殊符号的实现 测绘信息与工程 Journal of Geomatics 2004 Dec. ; 29 (6) 27 在的特殊或复杂的符号 ,用程序符号实现并建立了相应的符 号库 ,可满足实际 生产的需要 。目前这个软件正在完善之 中 ,在出图时各种符号的压盖关系处理 、 加强符号的编辑功 能等不足之处 ,正在解决之中 。 例 。图 2 ( b) 中点状符号是 由函数生成的 , 其形态采用 y = sin ( Ax + B ) 来控制 ,做法与图 2 ( a ) 类似 ; 图 2 ( c ) 沼泽符号和 参考文献 [1 ] 姚兴海 ,马秋云 . 基于 CorelDraw 的地图符号库建库 [J ] . 测绘通
本文由开到荼靡223贡献 pdf1。 测绘信息与工程 Journal of Geomatics 2004 Dec. ; 29 (6) 文章编 号 :100723817 (2004) 0620025203 以及 CorelDraw 等 等 [4~10 ] [1~3 ] 25 中图分类号 :P283. 1 文献标识码 :B 地图符号系统的设计与实现 ( 武汉大学资源与环境科学学院 ,武汉珞喻路 129 号 ,430079) 张园玉 霖 毅 李 龙 尹章才 申 应 李志涛 菁 洋 黄 梅 摘 要 设计并实现了一套符号的思想实现 一些相对特殊的如沙丘 、 河流 、 沼泽等地图 符号 ,成功地对国家标准系列地形图图式进行了设计 ,实现了各种比例 尺下的地图符 号的绘制 ,完成了在 Visual C + + 平台上所研制的地图符号软件系统的设计与开发 。 关键词 地形图图式 ; 地图符号系统 ; 地图符号 ; 程序符号 部填充可通过 点符号或线符号 ,以一定的方式如井字 、 品字 、 随机排列构成 。线状符号表达呈 线状分布的地物 ,但有些符 号 ,如陡崖 、 沙砾滩符号等 , 同时又具有一定的分布 范围 , 可 定义成半线半面状符号 。另外 ,线状符号和面状符号中都包 含了一些不 能制作或不方便制作的需要单独的程序来绘制 的地图符号如新月型沙丘 、 河流 、 沼泽符号等 ,将其定义为程 序符号 。 1. 3 地图符号库系统的类结构 一般来说 ,地图符号的设计和实现方法分为两种 : 一是 在已有软件的基础上利用其二次开发语言及自身的图形编 辑功能进行自定义符 号 ,如 ArcInfo ,AutoCAD ,MapInfo ,ArcView ; 二是利用程序语言自己开发符号设计 软件平台实现符号 , 目前最 流 行 的 就 是 OOP 或 COM 技 术 。针对目前符 号库系统都是面向计算机而不是面向 地理信息的可视化 ,忽略了地图符号中一些计算 机较难实现 的或比较复杂的特殊符号 ,如难以处理复杂的线 、 面符号 [4 ] , 不能 绘制河流渐变线符号 [5 ] 等情况 ,选择对比了大中小比例 尺中如 1∶ 000 ,1∶ 0 00 ,1∶ 000 ,1∶ 000 000等比例尺下 5 100 250 1 的符号 ,包括普通地图符号和相 对特殊的地图符号 , 设计了 一套地图符号系统 , 在 VC + + 6. 0 环境下开发并完 成了该系 统。 根据上述分析 , 系统的类结构为多个点图元 、 线图元和 面图元对象聚合成一 个符号基类对象 ,而一个符号基类对象 又包含于点状符号 、 线状符号对象中 , 多 个点状符号和线状 符号对象聚合而成一个面状符号对象 。点 、 、 线 面状符号被 符号库类对象包含 , 其间没有复杂的继承关系 , 只是一种管 理组合机制 ,充分体 现了面向对象管理的优势 , 提高了系统 的效率 。以符号数据库类为例 : class CSymbolDataBase { public : ) ΠΠ调用点 、 、 void Symbolize ( CDC 3 pDC , long lSymCode , … ; ΠΠΠ 线 CAreaSymbol 3 arrayAsym ; ΠΠΠ ΠΠ ΠΠΠΠ面符号对象集合 CLineSymbol 3 arrayLsym ; ΠΠΠΠΠ ΠΠΠΠ线 符号对象集合 CPointSymbol 3 arrayPsym ; ΠΠΠΠΠ ΠΠΠΠ点符号对象集合 1 地图符号库系统的结构 地图被看作空间符号模型 ,空间现象的特征均是通过地 图图形语言加以表达的 。通过对地图图形分解 , 可区分点 、 线、 面三种地 图符号类型 ,根据符号的几何特征 ,点 、 、 线 面符 号又可分解成更小的基本几何 图形单元 ,即图元 。图元是构 成符号的最小单位 。 1. 1 图元分析 面符号中 Symbolize () 符号化函数 … …ΠΠΠΠΠ方法 ΠΠΠΠΠ … … ; } 很多符号库系统都是采用以图元作为符号的基本单元 的思想制作的 [4~8 ,10 ] ,然而大多数把各种图元单独作为一个 类 ,就形成
相关主题