


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最近要做坐标转换,采用arcgis server api for javascript,由于需要将一个局部坐标喜欢换为wgs84坐标系,所以geometry的project没办法解决问题。下面代码解决如何将一个局部坐标系转换为wgs84.转换之前要弄清这几个概念:大地坐标系(经纬度:BLH),平面直角坐标系(米:XYL),空间直角坐标系:(米:XYZ)。转换过程是:平面直角坐标系-大地坐标系-空间直角坐标系-7参转换-空间直角坐标系(目标)-大地坐标系-平面直角坐标系。/* * Created by xsg on 2014/6/23. */var pi_180 = Math.PI / 180;var _180_pi = 180 / Math.PI;var projectionTypes = ;projectionTypes.bj54 = a:6378245,/长半轴 e2:0.006693421622966/第一偏心率平方;projectionTypes.wgs84 = a:6378135,/长半轴 e2:0.00669437999013/第一偏心率平方;var myparams = dx : 31.4, dy : -144.3, dz : -74.8, rx : 0, ry : 0, rz : 0.814, m : -0.38;/7坐标系统转换方法/sourceType:源投影类型 targetType:目标投影类型 params: 7参数 blh:源大地坐标function coordinateTransfUse7params(sourceType,targetType,params,blh) sourceType = sourceType.toLowerCase(); targetType = targetType.toLowerCase(); var XYZ1 = _BLH2XYZ(sourceType,blh); var XYZ2 = _transXYZBy7params(XYZ1,params); var blh2 = _XYZ2BLH(targetType,XYZ2); console.log(blh2);function _BLH2XYZ(projectionType,blhObj)/将大地坐标喜欢换为空间直角坐标系 var e2 = projectionTypesprojectionType.e2;/第一偏心率平方值 var a = projectionTypesprojectionType.a;/长半轴 var N = a / Math.sqrt(1 - e2 * Math.sin(blhObj.b * pi_180) * Math.sin(blhObj.b * pi_180); var X = (N + blhObj.h) * Math.cos(blhObj.b * pi_180) * Math.cos(blhObj.l * pi_180); var Y = (N + blhObj.h) * Math.cos(blhObj.b * pi_180) * Math.sin(blhObj.l * pi_180); var Z = N * (1 - e2 ) + blhObj.h * Math.sin(blhObj.b * pi_180); var resultObj = ; resultObj.X = X; resultObj.Y = Y; resultObj.Z = Z; return resultObj;function _transXYZBy7params(xyz0,params)/根据7参数对空间直角坐标系进行运算 var x0 = xyz0.X; var y0 = xyz0.Y; var z0 = xyz0.Z; var dx = params.dx; var dy = params.dy; var dz = params.dz; var rx = params.rx; var ry = params.ry; var rz = params.rz; var m = params.m; var x1 = dx + (1 + m) * x0 + Math.sin(rz / 60 / 60 * pi_180) * y0 - Math.sin(ry / 60 / 60 * pi_180) * z0; var y1 = dy + (1 + m) * y0 - Math.sin(rz / 60 / 60 * pi_180) * x0 + Math.sin(rx / 60 / 60 * pi_180) * z0; var z1 = dz + (1 + m) * z0 + Math.sin(ry / 60 / 60 * pi_180) * x0 - Math.sin(rx / 60 / 60 * pi_180) * y0; var resultObj = ; resultObj.X = x1; resultObj.Y = y1; resultObj.Z = z1; return resultObj;function _XYZ2BLH(projectionType,xyz1) var a = projectionTypesprojectionType.a; var e2 = projectionTypesprojectionType.e2;/第一偏心率平方值 var X = xyz1.X; var Y = xyz1.Y; var Z = xyz1.Z; var L = Math.atan(Y / X) * _180_pi; var B = Math.atan(Z / Math.sqrt(X * X + Y * Y); while(true)/迭代计算 var N = a / Math.sqrt(1 - e2 * Math.sin(B) * Math.sin(B); var tempB = Math.atan(N * e2 * Math.sin(B) + Z ) / Math.sqrt(X * X + Y * Y ); B = Math.atan(Z + N * e2 * Math.sin(tempB) / Math.sqrt(X * X + Y * Y ); if(tempB = B) break; var H = Z / Math.sin(B) - N * (1 - e2); B = B * _180_pi; var resultObj = ; resultObj.L = L; resultObj.B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第三节 能量转化的方向性说课稿-2025-2026学年高中物理选择性必修第三册沪科版(2020·上海专用)
- 2025年区块链技术的去中心化应用
- 2025年区块链技术的金融风险
- 2025银行客服考试题库及答案
- 2025虹口区社工考试题型及答案
- 2025年心理健康教育工作者考试试题及答案
- 2025年信息系统师考试知识体系试题及答案
- 2025太空教师考试题及答案解析
- 2025济南社工考试题及答案
- 2025年医疗器械法律法规相关知识培训试题及答案
- 2024年云南省交通投资建设集团有限公司管理人员招聘考试真题
- GB/T 17219-2025生活饮用水输配水设备、防护材料及水处理材料卫生安全评价
- 省级人文社科课题申报书
- 2025年合肥市公安局第二批公开招聘警务辅助人员633名考试参考题库及答案解析
- 2025年海工装备行业研究报告及未来发展趋势预测
- 高考物理力学专题复习指导方案
- 高三试卷:2025届浙江省新阵地联盟高三10月联考历史答案
- 医疗机构麻醉药品和精神药品使用管理和考核培训规定
- 主题一 4. 创建我们的“健康银行”(课件) 综合实践活动教科版五年级上册
- 2025农村果园租赁合同示范文本
- 人教版二年级数学上册第二单元 1~6的表内乘法必刷卷 (含答案)
评论
0/150
提交评论