陈 静
(中国石油集团工程设计有限责任公司华北分公司,河北 任丘 062552)
Google Earth路径信息提取至CAD技术研究
陈 静
(中国石油集团工程设计有限责任公司华北分公司,河北 任丘 062552)
在Googel Earth中结合卫星地图进行选线,并将选出的线路各个折点坐标导出至CAD中,自动生成矢量图,与地形图吻合,生成工程线路走向图。
Googel Earth路径信息导出; 坐标转换; CAD中自动生成工程线路走向图
长输管道工程设计过程中,常常遇到下面的难题:买来的地形图日期较旧,现场实际情况与地形图描述信息相差很大,而Googel Earth中卫星地图日期较新,却无法生成矢量图出版。解决这一问题的办法就是在Googel Earth中对卫星地图和地形图叠加进行选线,并将选出的线路各个折点坐标导出至CAD中,自动生成矢量图,在CAD中与地形图吻合,生成工程线路走向图。
在Googel Earth中,卫星地图和地形图叠加方法如下:选择菜单“添加-影像贴图”,将会出现一个对话框,修改影像贴图名称,然后点取“坐标点”项,定义地形图的四个角坐标,如图1所示。
卫星地图和地形图叠加后,可结合叠加图进行选线,创建路径。保存格式有两种:一种是默认的kmz文件,另一种是kml文件。kml同kmz一样, 用来描述和保存地理信息如点、线、图片、折线的,其引入引出方法与kmz类似,只是选择文件格式为kml就行了。kml与kmz不同的是,它是一种xml描述语言,是文本文件格式的,所以有它的优点。比如,可以直接贴在网页上,由于是文本文件格式,其格式我们可以掌握,因而能通过文本编辑器修改kml文档。
图1 添加影像贴图Fig.1 Add the image texture
在kml中,路径是用 <LineString> 元素创建的。以唐山迁安市附近一条模拟线路为例,看一看以下代码,您就会明白Googel Earth是如何用以下代码来生成形状的:
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
<name>aa.kml</name>
<Style id="sn_ylw-pushpin1">
<IconStyle>
<scale>1.1</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pushpi
n/ylw-pushpin.png</href>
</Icon>
<hotSpot x="20" y="2" xunits="pixels"
yunits="pixels"/>
</IconStyle>
<LineStyle>
<color>ff0000ff</color>
<width>2.2</width>
</LineStyle>
</Style>
<Style id="sh_ylw-pushpin1">
<IconStyle>
<scale>1.3</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pushpi
n/ylw-pushpin.png</href>
</Icon>
<hotSpot x="20" y="2" xunits="pixels"
yunits="pixels"/>
</IconStyle>
<LineStyle>
<color>ff0000ff</color>
<width>2.2</width>
</LineStyle>
</Style>
<StyleMap id="msn_ylw-pushpin1">
<Pair>
<key>normal</key>
<styleUrl>#sn_ylw-pushpin1</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#sh_ylw-pushpin1</styleUrl>
</Pair>
</StyleMap>
<Placemark>
<name>路径</name>
<styleUrl>#msn_ylw-pushpin1</styleUrl>
<LineString>
<tessellate>1</tessellate>
<coordinates>
118.5076323339115 ,39.88492154454674,0
118.5327174406854 ,39.90374842193365,0
118.5554762739915 ,39.90896825588727,0
118.5686286653008 ,39.92087299206633,0
118.5850297467256 ,39.93245270780359,0
118.6086485701484 ,39.93676138390605,0
118.6276615260924 ,39.93730070542584,0
118.6444620176696 ,39.94662872790234,0
118.6538278926043 ,39.95612077295152,0
</coordinates>
</LineString>
</Placemark>
</Document>
</kml>
请注意,它其实只是一条折线。<tessellate> 标签把线切成小段,而 < coordinates > 标签定义每一个折点的经度、纬度和高度(按照严格的顺序)。多个折点使用空格隔开,经纬度按照WGS84标准。
下一步需要做的工作就是用文本编辑器修改kml文档,删除除经纬度以外的所有文字,保存为*.txt格式。
由于CAD中使用的是平面直角坐标,因此需要进行 WGS84坐标即大地坐标到平面直角坐标的转换。
常规的转换应先确定转换参数,即椭球参数、分带标准(3°,6°)和中央子午线的经度[1]。
椭球参数就是指平面直角坐标系采用什么样的椭球基准,对应有不同的长短轴及扁率。[1]北京54坐标系采用克拉索夫斯基椭球参数,长半径为6378245(m),短半径为6 356 863(m),扁率为1∶298.3;西安80坐标系采用国际地理联合会(IGU)第十六届大会推荐的椭球参数,长轴半径为6378140±5(m),短半径为6 356 755.288(m),扁率为1:298.257;WGS-84坐标系其参数采用 IUGG第 17届大会大地测量常数的推荐值。长半径为6378137± 2(m),短半径为6 356 752.314 2(m),扁率为1 / 298.257 223 563。
按一定经差将地球椭球面划分成若干投影带,这是高斯投影中限制长度变形的最有效方法。分带时既要控制长度变形使其不大于测图误差,又要使带数不致过多以减少换带计算工作,据此原则将地球椭球面沿子午线划分成经差相等的瓜瓣形地带,以便分带投影。通常按经差6°或3°分为6°带或3°带。6°带:以0°子午线算起,每6°为1带,第1带的中央子午线为东经3°。3°带:以东经1°30′开始,每隔3°为1带,第1带的中央子午线为东经3°。我国通常采用6°分带法,将全球分为60个带,我国包括从13带到第23带共11个带。[2]一般的工程中6°带应用较为广泛。
对于中央子午线的确定有两种方法,一是取平面直角坐标系中Y坐标的前两位×6-3,即可得到对应的中央子午线的经度。如x=4 417 926.253 m,y=20 628 951.765 m,则中央子午线的经度=20× 6-3=117°。另一种方法是根据大地坐标经度,如果经度是在 114~120°之间,那么对应的中央子午线的经度=(114+120)/2=117°[3]。
确定参数之后,可以用软件进行转换。在目前流行的换算软件中,存在一个共同的不足之处,就是灵活性较差,大都需要一个点一个点地进行,不能成批量地完成,给实际工作带来许多不便。个别可以批量转换的软件也存在这样那样的错误。笔者发现,用 EXCEL可以很直观、方便地完成坐标换算工作,现在已有相应的小程序被开发出来,经笔者大量验算,转换结果非常正确。此小程序即为“高斯投影坐标换算 0.4B” ,用于高斯投影坐标变换,中央子午线用“度分秒”表示,方便了独立坐标系的换算。此程序可正算、反算、换带、求面积。我们需要用到的是坐标正算功能,即由大地坐标转换为平面直角坐标。注意此软件使用的大地坐标格式为度分秒格式,前面得到的*.txt文件大地坐标格式为十进制的度格式。为了最终实现Google Earth路径信息提取至CAD中,笔者对此软件进行了改进。
我们需要将前面得到的*.txt文件导入至EXCEL中,文本导入向导中第二步注意勾选“逗号”,这样才能以“逗号”作为分隔符号,将坐标的经纬度分两列导入进来,见图2。
图2 导入经纬度坐标Fig.2 Import the longitude and latitude Coordinate
导入进来的经纬度格式为十进制的度格式,我们使用INT、ROUND函数和CONCATENATE函数对十进制的度进行取整,字符串合并,最终实现十进制的度向度分秒格式的转换。代码如下:
CONCATENATE(INT(A3),".",IF(INT((A3-INT(A3) )*60)<10,CONCATENATE("0",INT((A3-INT(A3))*60)) ,INT((A3-INT(A3))*60)),IF(ROUND(((A3-INT(A3))*60 -INT((A3-INT(A3))*60))*60,0)<10,CONCATENATE(" 0",ROUND(((A3-INT(A3))*60-INT((A3-INT(A3))*60)) *60,0)),ROUND(((A3-INT(A3))*60-INT((A3-INT(A3)) *60))*60,0)))
通过“高斯投影坐标换算 0.4B” 软件转换后的直角坐标纵坐标前少带号“20”,我们使用CONCATENATE函数将直角坐标以Y坐标在前、X坐标在后的方式,合并成一个坐标组字符串,以便CAD读入,例如CONCATENATE("20",H14,ROUND(I3,3)&",",ROUN D(H3,3)),计算结果为“20628951.765,4417926.253”。
“高斯投影坐标换算 0.4B” 软件界面见图3。
图3 坐标换算软件界面Fig.3 Coordinate conversion software interface
坐标组数据读入CAD中,生成矢量图形并不难。只需复制坐标组数据切换至cad中,点多义线命令,接下来在命令栏的提示后左键点击,再直接右键粘帖,回车,即可最终实现Google Earth路径信息提取至CAD中的目的。
为了生成工程线路走向图,我们还需要将工程所在地段的地形图作为光栅图像参照插入,然后将地形图放大到 1∶1比例,以地形图上任一点为基点,将地形图移至其实际直角坐标处。最后所做的工作就是裁剪地形图,进行工程线路走向图出版。
Google Earth路径信息提取至CAD技术并不复杂,合理地利用此技术能够提高设计质量,减少设计重复选线工作量,方便设计,加快设计进度。当然,也可以反向操作,将 CAD中管线路由转换成Google Earth路径,可以在Google Earth中进行三维浏览,方便直观,有利于管线路由的进一步优化。
[1]坐标的基本概念[EB].百度文库,2011.
[2]王顺.工程测量中坐标系及投影面、投影带的选择[EB].中路网博客,2008.
[3]大地坐标和北京54等坐标系之间的转换[EB]. 百度文库,2012.
Research on Extraction Technology of Google Earth Path Information to CAD
CHEN Jing
(China Petroleum Engineering Co., Ltd. North China Branch, Hebei Renqiu 062552,China)
The route is first selected from Googel Earth combined with satellite maps, and then the coordinates of each turning point in selected route are exported into CAD to automatically generate vectorgraph, the project route map is finally generated combined with topographic maps,.
Exporting Googel Earth path information; Coordinate conversion; Engineering route maps
G255
A
1671-0460(2014)11-2390-04
2014-03-22
陈静(1976-),女,四川乐至人, 2003年毕业于河北工业大学,工程师,主要从事油气储运设计工作。E-mail:646685772@qq.com。