标题：Acad转GoogleEarth程序
简介
Acad转Earth程序采用基于AutoCAD的VBA编写，能够将CAD对象转换成GoogleEarth所需的KML文件。免费软件，无任何功能和时间上的限制。  
初始化
1、本程序适用于AutoCAD R2000以上版本
2、本站程序可能用到的控件comdlg32.ocx、xpcmd.ocx，如位于程序文件夹请复制到windows\system32或winnt\system32。
3、如程序启动出现系统错误，可下载安装VB6运行库 ，如仍出错，可点击windows开始－运行，输入regsvr32.exe C:/Windows/System32/comdlg32.ocx和regsvr32.exe C:/Windows/System32/xpcmd.ocx类似语句。
操作
Acad转GoogleEarth程序(6张)
1、 打开CAD，运行本程序。
2、 经纬度修正计算
修正原因：GoogleEarth采用的是WGS84坐标系统，WGS84坐标和北京54、西安80坐标之间是不存在一套转换参数可以全国通用的，它们是两个不同的椭球基准。
修正方法：可采用七（三）参数法，参数需测绘院提供或自行采点计算，本程序采用多点北京54或西安80坐标计算出的经纬度和同一点的WGS84经纬度计算平均差值进行修正，经测试，能够满足CAD图形转到GoogleEarth的精度要求。
操作方法：
(1)找出CAD图与GoogleEarth中同一点，建立如下文件示例格式，选取3点或更多。
修正文件格式：
;;标识 X坐标 Y坐标 84纬度(度分秒) 84经度(度分秒)
1 3402917.0506 562267.5588 30.443882 111.390380
2 3384673.0591 554926.8618 30.344747 111.342492
3 3367259.4966 551614.9128 30.252232 111.321695
文件格式说明：
X、Y坐标：平面坐标，与CAD中X、Y坐标相反，X坐标为7位、Y坐标为6位，可通过命令ID获取。
84纬度(度分秒)、84经度(度分秒)：GoogleEarth中与CAD图中同一点的经纬度，可采用菜单-添加-地标来获取，获取前需确认菜单-工具-选项-3D视图-显示经纬度为度分秒格式，经纬度数值用小数表示，如：140.022866为140°02′28.66″。
(2)设置坐标系，给定中央子午线，中央子午线可以采用CAD图对应的子午线也可随意给定，但修改后需重新修正计算，对最终导入GoogleEarth结果没有影响；点击修正计算后选取该文件，程序将生成【文件名_计算结果】文件 并自动打开文件以方便检查是否存在误差较大的点，结果文件格式如下。
计算结果文件格式：
标识 纬度修正(分) 纬度修正(分)
1 0.00664 0.03826
2 0.00617 0.03773
3 0.00750 0.03858
4 0.22911 -0.20751
----------------------------
纬度修正平均：0.06236
经度修正平均：-0.02324
如存在相对误差较大的点（如上述第4点），修改原文件舍弃该点或重新选取相对点后重新计算修正值 ，修正值单位为分。有的点相对误差加大可能是由于GoogleEarth的卫星图片精度不够，如下图所示中GoogleEarth新老卫片接头存在较大误差，对这种情况可以对CAD图形分段进行操作。  3、生成KML文件
A、设置坐标系统、中央子午线及参数，点击转换按钮，给定保存的KML文件名，程序将切换到CAD，选取 需转换对象，程序将自动生成GoogleEarth所需的KML文件，生成的KML格式为UTF-8以支持中文显示，无需采用记事本另存为UTF-8格式。
B、程序支持文本、直线、多段线、三维多段线、圆、圆弧。
C、中央子午线用°′″表示，如：111.15为111°15′。
D、对于【多段线存在圆弧部分】选项，一般情况不勾选，确实存在可勾选，勾选后将对每条多段线进行判断并处理，影响转换速度，特别是EICAD的缓和曲线由很多段小圆弧组成，如缓和曲线和圆未合并，可不勾选。
4、切换到GoogleEarth。
直接双击KML文件切换到GoogleEarth或在GoogleEarth中用菜单-文件-打开KML文件。
5、测试结果：
（1）麻阳高速
高速公路140km南北向，导入GoogleEarth，公路与地图相对位置基本吻合。如下两张图位置相差约100km，从图中原有道路可以看出，导入线形与地图相应位置基本重合。    （2）大随高速
高速公路东西向约80km，导入GoogleEarth线形与施工时的卫片基本吻合。
    
6、CAD坐标不是真实坐标如何操作？
CAD坐标不是真实坐标即为相对坐标时，可采取坐标转换计算得到CAD相对真实坐标，然后进行操作。
（1）GoogleEarth中获取相对点经纬度。
（2）采用坐标转换程序将相对点经纬度转换成平面坐标，坐标转换程序可到网上搜索下载，多为免费版，记住转换采用的坐标系及中央子午线。
（3）将CAD图以相对点为参照移至计算后的平面坐标处。
（4）运行本程序，设置转换采用的坐标系及中央子午线，经纬度修正设为0，然后进行转换操作。
7、关于坐标系（大地坐标、平面坐标、投影、北京54、西安80、WGS84）的一些理解
先从简单说起，假设地球是正圆的，地球表面上的一点可以用经纬度来表示，这时的经纬度是唯一的。那什么情况下是不唯一的呢，就是地球不是正圆的时候。实际也是如此，地球本来就不是圆的，而是一个椭圆。关于这个椭圆并不是唯一的，比如克拉索夫斯基椭球，1975国际椭球等等。椭球的不同主要由两个参数来体现，一个是长半轴、一个是扁率。之所以会有不同的椭球体出现，是因为地球太大了，地球不是一个正椭球体，一个椭球体不可能都满足地球每个角落的精度要求，在一些边缘地带误差会很大，在赤道附近有适合赤道使用的椭球体，在极圈附近有适合极圈的椭球地，一切都是为了符合当地的精度需要。如果你有足够的需求也可以自定义一个椭球体。基于以上原因，这时经纬度就不是唯一的了，这个应该很好理解，当你使用克拉索夫斯基椭球体时是一对经纬度，当使用另外一个椭球体时又是另外一对经纬度。
用经纬度表示的是地理坐标系，也称大地坐标系。有时候用地理坐标系不够方便，人们比较习惯于使用平面坐标系，平面坐标系用xy表示。
把球体表面的坐标转成平面坐标需要一定的手段，这个手段称为投影。投影方法也不是唯一的，还是为了一个目的，务求使当地的坐标最准确。所以目前就存在了好多投影方法，比如高斯投影、墨卡托投影等。谁有本事而且有那方面的需求也可以自创一套投影方法。
接下来是关于WGS84、北京54、西安80的概念：
首先有WGS84、北京54、西安80大地坐标系，是用经纬度表示的，也有WGS84、北京54、西安80平面坐标系，使用xy表示的。WGS84的椭球采用国际大地测量与地球物理联合会第17届大会测量常数推荐值；  北京54采用的是克拉索夫斯基椭球；西安80采用的是1975国际椭球，所以地球表面上一点的这三者大地坐标是不一样的，即经纬度是不一样的。
目前比较流行的是高斯- 克吕格投影和墨卡托投影，当然也可以用别的投影，看实际需要了。
涉及到不同坐标系，就会有坐标转的问题。关于坐标转换，首先要搞清楚转换的严密性问题，即在同一个椭球里的坐标转换都是严密的，而在不同的椭球之间的转换这时不严密的。例如，由1954北京坐标系的大地坐标转换到1954北京坐标系的高斯平面直角坐标是在同一参考椭球体范畴内的坐标转换，其转换过程是严密的。由1954北京坐标系的大地坐标转换到WGS-84的大地坐标，就属于不同椭球体间的转换。
不同椭球体间的坐标转换在局部地区的采用的常用办法是相似变换法，即利用部分分布相对合理高等级公共点求出相应的转换参数。一般而言，比较严密的是用七参数的相似变换法，即X平移，Y平移，Z平移，X旋转，Y旋转，Z旋转，尺度变化K。要求得七参数就需要在一个地区需要3个以上的已知点，如果区域范围不大，最远点间的距离不大于30Km(经验值)，这可以用三参数，即X平移，Y平移，Z平移，而将X旋转，Y旋转，Z旋转，尺度变化K视为0，所以三参数只是七参数的一种特例。
如果不考虑高程的影响，对于不同椭球体下的高斯平面直角坐标可采用四参数的相似变换法，即四参数（x平移，y平移，尺度变化m，旋转角度α）。如果用户要求的精度低于20米，在一定范围（2'*2'）内，就直接可以用二参数法（ΔB，ΔL）或（Δx，Δy）修正。但在实际操作中，这也取决于选取的公共点是否合理，并保证其足够的精度。