MicroStation平台下水深注记的自动展绘
2015-07-04崔孝伟青岛市勘察测绘研究院山东青岛266000
崔孝伟(青岛市勘察测绘研究院,山东青岛 266000)
MicroStation平台下水深注记的自动展绘
崔孝伟∗
(青岛市勘察测绘研究院,山东青岛 266000)
摘 要:水深注记不同于一般陆地高程注记,在国家标准中有着特殊的规定。依据国家标准图式,在分析水深注记的表现形式基础上,研究了水深注记在MicroStation中的展绘方法,并在MicroStation平台下利用MDL二次开发方式实现了水深注记的自动展绘。
关键词:水深注记;MicroStation;MDL
1 引 言
水深注记是水下地形图中的主要元素,是水下地形测量的主要成果形式,MicroStation已在陆地测绘的内业制图工作中被广泛采用,为了使MicroStation在水下地形测量中得到很好的应用,我们研究了如何在MicroStation平台下稳定高效的展绘水深注记及其他相关应用,既能符合国家标准图式的规定,又可以兼顾数据在其他平台中使用,本文给出了利用MicroStation 的MDL二次开发方式实现水深注记自动展绘的方法。
2 水深注记的表现形式
图1为国家标准图式中对水深注记的规定,依次判读水深为15.8 m, 6.4 m,不同于一般的陆地高程注记,最大的特点在于取消了小数点,水深数据的整数和小数分别单独表示,而不是一个单独的文本。国家标准还规定了水深注记的定位点在整数部分的中心,整数与小数部分的字体大小和相对位置。
图1 国家标准图式中的水深注记
3 水深注记的设计与实现
3.1MicroStation应用分析
MicroStation是目前测绘行业中被广泛使用并深度二次开发的绘图软件,在陆地测绘制图中应用非常成熟,但是在水下地形绘图方面较为欠缺。
MicroStation主要通过鼠标对话框操作,兼容命令输入的方式,图形用户界面友好,易学易用。MicroStation还提供了成熟的二次开发接口,其中MDL方式功能丰富,运行稳定,与MicroStation完美融合。因此,我们采用MDL方式进行水下地形绘图功能的开发。
3.2水深注记设计
图2为国家标准中规定的一般陆地高程注记,在MicroStation中每个注记可以通过单一的文本(简单元素)来表达,而水深注记的整数部分和小数部分是相对独立的,字体大小各不相同,但是又存在着固定的相对位置关系。
图2 国家标准图式中的陆地高程注记
如图3所示,在MicroStation中可以采用两个独立的文本(两个简单元素)分别表示水深注记的整数和小数部分,但会有以下缺陷:有失整体性,容易出现误操作使整数和小数的位置发生偏移;不易导出图面的水深值。我们研究了很多方法,比如在整数部分中加挂水深值属性,比如采用小数部分为标签的方式,都不能很好地解决。因此,我们需要将独立的整数与小数部分整合成为一体,在MicroStation我们采用单元cell(复杂元素)的方式,使用“元素描述符”进行操作。
图3 MicroStation中水深注记
3.3水深注记自动展绘
(1)建立单元
为了保证整数部分与小数部分的相对位置及美观,根据测区水域的水深范围(0≤d<10、10≤d<100、100≤d<1000……)分别建立相应水深注记范围的单元,如图4所示,将所建立单元分别命名保存于单元库中,以备调用。
图4 建立水深注记单元
(2)自动展绘
测深仪自带的数据编辑软件可以直接导出CASS格式的数据,利用MicroStation提供的MDL开发方式设计友好的用户界面,由用户选择待展绘的CASS格式的数据,由程序自动处理展绘,流程图如图5所示:
图5 自动展绘流程图
关键代码如下:
①读取数据
fscanf(FP,"%[^,],,% f,% f,% f ",ptname,&ptx,&pty, &ptz);
②判断水深范围并调取相应的单元
if(zsval<10)
{
mdlCell _ getElmDscrExtended ( &pCellElmdscr, NULL, NULL, &pt, &cellScale, TRUE, MASTERFILE, NULL, NULL, 0, 0, FALSE, TRUE, cellName, NULL);
}
……
③提取整数与小数并分别创建文本
zsval=floor(ptz);
sprintf(zs,"%d",zsval);
xsval=atof(ptz)∗10-zsval∗10;
sprintf(xs,"%d",xsval);
mdlText_create(&zsElement,NULL,zs,&pt,&txtSize,NULL, &txtParam,NULL);/ /创建
mdlText _ create ( &xsElement, NULL, xs, &pt1, &txtSize1, NULL,&txtParam1,NULL);
④替换整数小数
nCellElmdscr=pCellElmdscr->h.firstElem;/ /遍历单元内部的整数与小数分别替换
flag=0;
while(nCellElmdscr)
{
if(flag= =0)
{
mdlElmdscr_ replaceElement (&nCellElmdscr, &zsElement);flag++;
}
else
{
mdlElmdscr_replaceElement(&nCellElmdscr,&xsElement);}
nCellElmdscr=nCellElmdscr->h.next;
}
3.4应用实例
针对某海洋测绘工程开发此模块实现水深注记的自动展绘。用户点击第一个按钮选择待展绘的文件,支持同时选择多个文件,第二个按钮实现具体的展绘过程,结果如图6所示:
图6 水深注记自动展绘界面
图7 其他水下地形测量应用
4 结 语
目前大多数水下地形测绘工程都利用AutoCAD平台进行编绘,本文讨论了MicroStation平台下水深注记的自动展绘思路及方法,尤其是对MicroStation中复杂元素的操作有着很好的借鉴意义,并在实际应用中在MicroStation平台下开发了水下地形绘图软件,高效编绘出稳定、美观的水下地形图。
参考文献
[1] 徐连信.C语言程序设计[M].北京:清华大学出版社, 2005.
[2] 赵建虎.现代海洋测绘[M].武汉:武汉大学出版社, 2007.
[3] GB/ T 20257.1-20072.1∶500 1∶1000 1∶2000地形图图式[S].
[4] GB 12319-1998.中国海图图式[S].
[5] Bentley.MDLAPIFunctionReference [ EB/ OL].http:/ / www.bentley.com/ zh-CN/ ,2004.
Automatic Poltting soundings in MicroStation
Cui Xiaowei
(Qingdao Geotechnical Investigation and Surveying Institute,Qingdao 266000,China)
Abstract:Sounding is different from height and special in GB.A method of poltting soundings in MicroStation is presented based on the analysis of standard and it was realized automatically by programming in MDL.
Key words:sounding;MicroStation;MDL
文章编号:1672-8262(2015)05-106-02中图分类号:P209
文献标识码:B
收稿日期:∗2015—05—06
作者简介:崔孝伟(1985—),男,工程师,主要从事MicroStation、AutoCAD以及EPS二次开发工作。