边顶山
摘要:文章介绍了根据专题电子海图制作的要求和现状,利用AutoCAD的二次开发插件的数据转换功能,准确快速地转换数据,从而提高专题电子海图的制作效率。
关键词:AutoCAD;二次开发;专题电子海图;数据转换
1背景与现状
专题电子海图通常是在标准电子海图中突出表示某一要素或某些要素;或者是将标准电子海图的内容表示之外,同时绘出一些专门内容。由于这些专题要素和内容种类繁多,数据来源不同,数据格式各异,就需要编绘人员对这些数据资料进行处理,尤其是对它们的投影、坐标系、数据格式等进行转换。
目前,上海海图中心采用海道测量生产数据库HPD(Hydrographic Product Database)进行电子海图的制作,其中也包括专题电子海图的制作。这些专题电子海图主要是在标准电子海图的基础上突出表示码头、港池、航道以及重要水道的水深、等深线等要素。在实际生产制作时,经常遇到外业测量数据或者用户提供的第三方数据只有单一的AutoCADdwg文件数据。虽然HPD提供了显示dwg文件数据的功能,但是由于dwg文件数据结构的开放性以及客户化的多样性,仅仅使用HPD是无法完全满足制作专题电子海图的需要。
2遇到的主要问题
(1)坐标系转换问题。dwg文件数据使用的坐标系与专题电子海图使用的坐标系不一致,dwg文件数据使用的坐标系主要有北京1954坐标系、深圳独立坐标系、盐田港施工坐标系等,而HPD制作的专题电子海图一般使用的是WGS84坐标系,两者之间必须进行坐标系转换。否则,dwg文件数据中的专题要素就不能正确地在HPD中显示,也就不能正确地在专题电子海图里生成对应物标,相关的专题电子海图也就不能制作。
(2)水深数据读取问题。专题电子海图所需表示的专题要素,特别是水深数据,其在dwg文件数据中表示方式各异,有dwg块的,也有文字的。这些方式表示的水深数据在HPD中不能正确地读取,也就不能在专题电子海图里生成对应的水深物标,相关的专题电子海图也是不能制作的。
3解决的方法
3.1海道測量工具包
海道测量工具包是通过对AutoCAD进行二次开发生成的一个DLL文件,可通过AutoCAD中的NETLOAD命令加载,主要用于海道测量数据的处理。这里主要介绍坐标转换(zH)、水深保存(ssbc)等几个命令功能来解决上述dWg文件数据的数据转换问题。
3.2解决的过程
3.2.1坐标系转换
根据dwg文件数据中的文字说明,区分出dwg文件数据使用的是北京1954坐标系还是深圳独立坐标系等其他坐标系。
(1)dwg文件数据是北京1954坐标系的,使用坐标转换(zH)命令,输入准确的中央经线,选择预设的《中国沿海1954年北京坐标系与WGS-84世界大地坐标系转换参数》,即使用布尔莎七参数进行转换,即可完成dwg文件数据从北京1954坐标系到WGS84坐标系的转换。
(2)dwg文件数据是深圳独立坐标系等其他坐标系的,由于没有相应的布尔莎七参数,需要根据dwg文件数据中固定点坐标和对应标准电子海图中的WGS84大地坐标,使用坐标转换软件进行仿射变换参数求解。再使用仿射变换(FS)命令,输入求解出的仿射变换参数进行转换,即可完成dwg文件数据从深圳独立坐标系等其他坐标系到WGS84坐标系的转换。
3.2.2水深数据读取
在dwg文件数据中选中水深数据,右键查看对象特性,区分出水深数据是dwg块的还是文字的,并且还可以查看获取到水深数据对象的块名、块属性、高度等信息。
(1)水深数据是dwg块的,使用水深保存(ssbc)命令,选择块水深,输入获取的块名、整数及小数名称,勾选按属性名,再拉框选择所有dwg块水深,确认后就可以将dwg块水深导出为xyz文件使用。如果dwg块水深没有整数及小数名称,则不勾选按属性名,而是输入获取的整数及小数高度来将dwg块水深导出为xyz文件使用。
(2)水深数据是文字的,需单独显示文字水深所在的层,再使用水深保存(ssbc)命令,选择斜水深,根据文字炸开与否,没炸开的点选定位点,炸开的点选对齐点,并输入获取的整数及小数高度,再拉框选择所有文字水深,确认后就可以将文字水深导出为xyz文件使用。
(3)无论水深数据是dwg块的还是文字的,如果其整数及小数高度没有进行区分,还可以使用ssp命令来将水深数据导出为xyz文件使用。
4小结
利用AutoCAD的二次开发插件对单一的AutoCADdwg文件数据进行数据转换,操作简便快速,不易出错,使得专题电子海图的制作效率有了大幅地提高。现将专题电子海图的基本制作流程归纳如下:
通过AutoCAD的二次开发插件与HPD的结合使用,基本满足了当前专题电子海图的制作生产需要,但是通过仿射变换转换的dwg文件数据对于精度要求较高的用户可能并不一定适用,还需要作进一步的研究解决。