/**
* Created by jack on 2017/3/2.
*/
define(function(){
//定义一些常量
var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
var PI = 3.1415926535897932384626;
var a = 6378245.0;
var ee = 0.00669342162296594323;
/**
* 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换
* 即 百度 转 谷歌、高德
* @param bd_lon
* @param bd_lat
* @returns {*[]}
*/
function bd09togcj02(bd_lon, bd_lat) {
var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
var x = bd_lon - 0.0065;
var y = bd_lat - 0.006;
var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
var gg_lng = z * Math.cos(theta);
var gg_lat = z * Math.sin(theta);
return [gg_lng, gg_lat]
}
/**
* 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
* 即谷歌、高德 转 百度
* @param lng
* @param lat
* @returns {*[]}
*/
function gcj02tobd09(lng, lat) {
var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
var bd_lng = z * Math.cos(theta) + 0.0065;
var bd_lat = z * Math.sin(theta) + 0.006;
return [bd_lng, bd_lat]
}
/**
* WGS84转GCj02
* @param lng
* @param lat
* @returns {*[]}
*/
function wgs84togcj02(lng, lat) {
if (out_of_china(lng, lat)) {
return [lng, lat]
}
else {
var dlat = transformlat(lng - 105.0, lat - 35.0);
var dlng = transformlng(lng - 105.0, lat - 35.0);
var radlat = lat / 180.0 * PI;
var magic = Math.sin(radlat);
magic = 1 - ee * magic * magic;
var sqrtmagic = Math.sqrt(magic);
dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
var mglat = lat + dlat;
var mglng = lng + dlng;
return [mglng, mglat]
}
}
/**
* GCJ02 转换为 WGS84
* @param lng
* @param lat
* @returns {*[]}
*/
function gcj02towgs84(lng, lat) {
if (out_of_china(lng, lat)) {
return [lng, lat]
}
else {
var dlat = transformlat(lng - 105.0, lat - 35.0);
var dlng = transformlng(lng - 105.0, lat - 35.0);
var radlat = lat / 180.0 * PI;
var magic = Math.sin(radlat);
magic = 1 - ee * magic * magic;
var sqrtmagic = Math.sqrt(magic);
dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
mglat = lat + dlat;
mglng = lng + dlng;
return [lng * 2 - mglng, lat * 2 - mglat]
}
}
function transformlat(lng, lat) {
var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
return ret
}
function transformlng(lng, lat) {
var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
return ret
}
/**
* 判断是否在国内,不在国内则不做偏移
* @param lng
* @param lat
* @returns {boolean}
*/
function out_of_china(lng, lat) {
return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
}
return {
wgs84ToGcj:wgs84togcj02,
wgs84ToBd:function(lng,lat){
var p=wgs84togcj02(lng,lat);
return gcj02tobd09(p[0],p[1]);
},
gcjToBd:gcj02tobd09,
gcjToWgs84:gcj02towgs84,
bdToGcj:bd09togcj02,
bdToWgs84:function(lng,lat){
var p=bd09togcj02(lng,lat);
return gcj02towgs84(p[0],p[1]);
}
};
});相关推荐
世界坐标系、相机坐标系和图像坐标系的转换
世界坐标系,相机坐标系和图像坐标系的转换
JavaScript实现百度坐标系、火星坐标系、WGS84坐标系的互相转换
1. WGS84坐标系 WGS-84坐标系是目前最通用的标准地理坐标系,平实我们常说的经纬度、从GPS设备、智能手机中取出的数据的坐标系、国际地图提供商使用的坐标系都是WGS84坐标系。 WGS-84坐标系(World Geodetic System)是一种国际上采用的地心坐标系。坐标原点为地球质心,其地心空间直接坐标系的Z轴指向国际时间局(BIH)1984.0定义的协议地极(CTP)方向,X轴指向BIH1984.0的协议子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1...
无人驾驶-控制-坐标系转化
无人驾驶-坐标系转化一、坐标系概念1.1 WGS-84坐标系1.1.1 简介1.1.2 角度范围1.1.3 基本参数1.1.4 坐标系图示1.2 ECEF地心坐标系1.2.1 简介1.2.2 坐标系图解1.3 ENU东北天坐标系1.3.1 简介1.3.2 坐标系图解1.3.3 UTM坐标系1.4 载体坐标系1.4.1 简介1.4.2 车辆坐标系1.4.3 S-L坐标系二、坐标系转化2.1 WGS84(LLA)-ECEF-ENU2.1.1 WGS84转ECEF2.1.2 ECEF转ENU2.2 ENU-ECE
地理坐标转换js
【代码】地理坐标转换js。
世界坐标系、相机坐标系、图像坐标系、像素坐标系
四个坐标系都是什么? 图像处理、立体视觉等等方向常常涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系 构建世界坐标系只是为了更好的描述相机的位置在哪里,在双目视觉中一般将世界坐标系原点定在左相机或者右相机或者二者X轴方向的中点。 接下来的重点,就是关于这几个坐标系的转换。也就是说,一个现实中的物体是如何在图像中成像的。 四个坐标系之间的相互转换 1. 从世界坐标系到相机坐标系 其中[ x ′ , y ′ ] 为...
雷达系统坐标系转化
雷达数据处理时经常会遇到坐标系转化的问题。一种常见的应用场景是已知雷达的经纬高,目标在大地坐标系下的xyz,需要解算出该目标在雷达坐标系下的xyz或RAE。 一、大地坐标系 大地坐标系是将地球看作椭球体,椭球球心即为坐标原点,地面上某点的位置用大地经度L、大地纬度B和大地高H 3个坐标分量来表示。其地面上一点的大地经度L为大地起始子午面与该点所在的子午面所构成的二面角,由起始子午面起算,向东为...
proj4js空间坐标转换入门
WGS 84地理坐标系统 (EPSG:4326)中国国家2000地理坐标系统 (EPSG:4490)定义和WGS 84一样(CGCS2000椭球和WGS84椭球极为相似,偏差仅有0.11mm,完全可以兼容使用)北京54坐标系 (EPSG:4214)西安80坐标系 (EPSG:4610)UTM 50号带 / UTM zone 50N (EPSG:32650)中国国境跨UTM带号为43-53,根据需要更改+zone后面的数字即可。
相机标定总结(像素坐标系、图像坐标系、相机坐标系和世界坐标系之间的转换关系说明)
近期做了一些机器手臂和摄像头之间手眼标定的内容,在这里对相机的标定做一下总结,手眼标定内容后续更新。 1. 相机成像原理说明 数码相机图像拍摄的过程实际上是一个光学成像的过程。相机的成像过程涉及到四 个坐标系: 世界坐标系、 相机坐标系、 图像坐标系、 像素坐标系以及这四个坐标系的转 换。 相机模型是光学成像模型的简化, 最基本的透镜成像原理如图1 所示: 图1透镜成像过程 其中 u 为物距, f 为焦距, v 为相距。 三者满足关系式:
unity的几种坐标系及他们之间的转换
在谈unity各种坐标系之前,我一直很好奇unity为什么要有这么多坐标系搞的很麻烦,其实unity这么坐标系是为了解决麻烦,试想计算你和你同桌的位置,要先得到你们各自在世界中的位置,然后在计算相对位置,其实完全没有这个必要,这也是unity为什么会有这么多坐标系的原因 1.word space (世界坐标系) 当我们向场景中添加物体时,他们都是以世界坐标系的方式的方式显示在场景中的,通过tr
三种常见经纬度坐标系的转化
三种常见经纬度坐标系的转化 我们常用的地图api坐标系有wgs84坐标系,gcj02坐标系,bd09坐标系。 wgs坐标系是国际上通用的坐标系,也称地球坐标系,gps和北斗系统都使用的是wgs坐标系。谷歌地图使用的是wgs坐标系(中国部分除外),openstreetmap使用的也是这种坐标系 gcj02坐标系是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系,也称火...
【自动驾驶】19.自动驾驶各个坐标系
WGS84 : 世界坐标系,即经纬高坐标系(经度(longitude),纬度(latitude)和高度(altitude)LLA坐标系 UTM: 世界坐标系 ENU: 世界坐标系,东北天 ENU 和 UTM 的区别: ENU局部坐标系采用三维直角坐标系来描述地球表面,实际应用较为困难,因此一般使用简化后的二维投影坐标系来描述。 UTM: 在众多二维投影坐标系中,统一横轴墨卡托(The Universal Transverse Mercator,UTM)坐标系是一种应用较为广泛的一种。 UTM坐标系
常用的地图坐标系及它们之间的转换
常用的坐标系和这些坐标系之间的相互转换
立体视觉中各个坐标系
一,标定原理 相机标定简单来说是从世界坐标系转换到图像坐标系的过程,也就是求最终的投影矩阵的过程。 基本的坐标系:世界坐标系、相机坐标系、成像平面坐标系、像素坐标系。 一般来说,标定的过程分为两个部分: 1、从世界坐标系转到相机坐标系,这一步是三维点到三维点的转换。 2、从相机坐标系转为像素坐标系,这一步是三维点到二维点的转换。 二、基本...
ThreeJS 坐标系转化
ThreeJS 坐标系转化(屏幕坐标与世界坐标互转)
坐标系变换
坐标系变换坐标系变换 不考虑平移 加入平移 齐次坐标系与平移 追溯过程 矩阵变换坐标系变换 or 位置变换 移动的坐标系 Think an invertible matrix as a coordinate. 坐标系变换,例如,现在有一个点P,在A坐标系中的坐标为(x,y)(x,y),如何求出点P在其他坐标系下的坐标呢?比如,我们想知道P点在B坐标系中的坐标? 做个类比,如果两个讲不同母语
不使用任何第三方库,纯JavaScript代码实现WGS-84坐标系到高德坐标系(GCJ-02)的转换
WGS-84(World Geodetic System 1984)是一个由美国国防部、国家海洋和大气管理局(NOAA)以及其他合作伙伴共同开发的地球大地测量系统,于1984年发布。它是一种地理坐标系,用于定义地球表面上的点的位置。WGS-84坐标系的原点位于地球质心,其基准椭球面参数为:长半轴a=6378137米,短半轴b=6356752.3142米,扁率f=(a-b)/a=1/298.257223563。WGS-84坐标系在全球范围内广泛使用,包括GPS定位系统、航空航天领域、地图制图等应用。
OpenCV学习之世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换关系
一、各坐标系介绍图像处理、立体视觉经常涉及到世界坐标系、相机坐标系、图像坐标系和像素坐标系。如下图所示:世界坐标系是为了确定相机的位置,在双目视觉中一般将世界坐标系原点定在左相机、右相机或两者X轴方向的中点。下面是各坐标系之间的装换,换而言之,就是一个现实中的物体是如何在图像中成像的。二、世界坐标系和相机坐标系之间的转换从世界坐标系到相机坐标系,设计到物体的旋转和平移。绕着不同的坐标轴旋转不同的角...
别再乱提MR了!手把手教你配置GitLab的CI/CD与分支保护规则,让团队协作更丝滑
本文详细介绍了如何配置GitLab的CI/CD与分支保护规则,以优化团队协作流程。通过设置Protected Branches、MR流水线检查和自动化审批规则,有效防止不规范操作和合并冲突,提升开发效率与代码质量。特别强调MR(Merge Request)的正确使用,确保团队协作更丝滑。
快速理解视觉常见的各个坐标系
在各种计算机视觉的引用中,常常提到下面多个坐标系:世界坐标系,相机坐标系,图像坐标系,像素坐标系。本文将介绍各个坐标系所代表的意义,帮助大家更好的理解计算机视觉。
基于的公司考勤系统(程序+开题报告)(开题报告+源码)
我们将研究和设计系统的架构和功能模块,包括员工信息管理模块、部门信息管理模块、考勤信息记录模块、工资信息计算模块、请假信息处理模块、奖惩信息管理模块、公告信息发布模块、上班打卡模块以及加班申请模块等。目的: 本项目旨在设计并实现一个基于的公司考勤系统,通过该系统,可以实现对员工、部门信息、考勤信息、工资信息、请假信息、奖惩信息、公告信息、上班打卡、加班申请等功能的统一管理。基于的公司考勤系统的设计与实现,旨在通过自动化技术提高考勤管理的效率和准确性,为企业管理提供有力的数据支持。最终成品以下面运行环境。
基于SHIS凝视型短波红外高光谱相机(900-1700nm)区分不同宝石的差异性和可分性(宝石分选)
SHIS系列凝视型高光谱相机基于液晶可调谐滤波器(LCTF),通过电控LCTF进行连续细分窄波段分光,对每个波段进行高分辨率的二维面阵成像,进行图像处理后,获得完整的高光谱高清图像序列。具有低功耗、小型化、使用方便和易于扩展的优势。其工作波段覆盖400nm至1000nm,能够捕捉宝石在不同波长下的光谱特征,为宝石鉴定提供了新的工具。
2万+



被折叠的 条评论
为什么被折叠?



