oracle wgs gcj,坐标转换,百度、高德、GCJ、WGS84等转换
坐标转换,网上的,百度、高德、GCJ、WGS84。。转换,不啰嗦,直接上代码,这种转换网上很多!最近几年一直在用这个,很不错。
class GPSTransformation{
constructor(){
//定义一些常量
this.x_PI = 3.14159265358979324 * 3000.0 / 180.0;
this.PI = 3.1415926535897932384626;
this.a = 6378245.0;
this.ee = 0.00669342162296594323;
}
/**
* 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换
* 即 百度 转 谷歌、高德
* @param bd_lon
* @param bd_lat
* @returns {*[]}
*/
bd09togcj02(bd_lon, bd_lat) {
bd_lon=Number(bd_lon);
bd_lat=Number(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 {*[]}
*/
gcj02tobd09(lng, lat) {
lng=Number(lng);
lat=Number(lat);
var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * this.x_PI);
var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * this.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 {*[]}
*/
wgs84togcj02(lng, lat) {
lng=Number(lng);
lat=Number(lat);
if (this.out_of_china(lng, lat)) {
return [lng, lat]
} else {
var dlat = this.transformlat(lng - 105.0, lat - 35.0);
var dlng = this.transformlng(lng - 105.0, lat - 35.0);
var radlat = lat / 180.0 * this.PI;
var magic = Math.sin(radlat);
magic = 1 - this.ee * magic * magic;
var sqrtmagic = Math.sqrt(magic);
dlat = (dlat * 180.0) / ((this.a * (1 - this.ee)) / (magic * sqrtmagic) * this.PI);
dlng = (dlng * 180.0) / (this.a / sqrtmagic * Math.cos(radlat) * this.PI);
var mglat = lat + dlat;
var mglng = lng + dlng;
return [mglng, mglat]
}
}
/**
* GCJ02 转换为 WGS84
* @param lng
* @param lat
* @returns {*[]}
*/
gcj02towgs84(lng, lat) {
lng=Number(lng);
lat=Number(lat);
if (this.out_of_china(lng, lat)) {
return [lng, lat]
} else {
var dlat = this.transformlat(lng - 105.0, lat - 35.0);
var dlng = this.transformlng(lng - 105.0, lat - 35.0);
var radlat = lat / 180.0 * this.PI;
var magic = Math.sin(radlat);
magic = 1 - this.ee * magic * magic;
var sqrtmagic = Math.sqrt(magic);
dlat = (dlat * 180.0) / ((this.a * (1 - this.ee)) / (magic * sqrtmagic) * this.PI);
dlng = (dlng * 180.0) / (this.a / sqrtmagic * Math.cos(radlat) * this.PI);
var mglat = lat + dlat;
var mglng = lng + dlng;
return [lng * 2 - mglng, lat * 2 - mglat]
}
}
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 * this.PI) + 20.0 * Math.sin(2.0 * lng * this.PI)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(lat * this.PI) + 40.0 * Math.sin(lat / 3.0 * this.PI)) * 2.0 / 3.0;
ret += (160.0 * Math.sin(lat / 12.0 * this.PI) + 320 * Math.sin(lat * this.PI / 30.0)) * 2.0 / 3.0;
return ret
}
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 * this.PI) + 20.0 * Math.sin(2.0 * lng * this.PI)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(lng * this.PI) + 40.0 * Math.sin(lng / 3.0 * this.PI)) * 2.0 / 3.0;
ret += (150.0 * Math.sin(lng / 12.0 * this.PI) + 300.0 * Math.sin(lng / 30.0 * this.PI)) * 2.0 / 3.0;
return ret
}
/**
* 判断是否在国内,不在国内则不做偏移
* @param lng
* @param lat
* @returns {boolean}
*/
out_of_china(lng, lat) {
return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
}
}
oracle wgs gcj,坐标转换,百度、高德、GCJ、WGS84等转换相关推荐
- GCJ-02火星坐标系、BD-09百度坐标系和WGS-84坐标系转换
WGS-84:GPS坐标系 GCJ-02:火星坐标系,国测局02年发布的坐标体系,高德,腾讯等使用. BD-09:百度坐标系 GCJ-02火星坐标系和WGS-84坐标系转换关系 var pi = 3. ...
- oracle七参数坐标转换,MapGIS国土空间数据2000大地坐标系转换系统
丰富的坐标转换模型 ❈ 三维七参数坐标转换模型 通过控制点/坐标重合点计算七参数,或利用已有七参数,对全国和省级范围的大地坐标或空间直角坐标系的数据进行投影变换. ❈ 平面四参数坐标转换模型 通过控制 ...
- GIS数据格式坐标转换(地球坐标WGS84、GCJ-02、火星坐标、百度坐标BD-09、国家大地坐标系CGCS2000)
文章目录 前言 一.坐标系 1.地球坐标 (WGS84) 2.国测局坐标系(GCJ-02.火星坐标系) 3.百度坐标(BD-09) 4.国家大地2000坐标系(CGCS2000) 二.百度坐标系(BD ...
- wgs-84,gcj-02,bd-09的相互转换,高德,世界测量,百度坐标系的相互转换,坐标系转换
高德使用的是gcj-02坐标系,百度使用的是bd09坐标系,注意其间的相互转换 1.首先创建一个GPS对象类 public class Gps {private double wgLat;privat ...
- 火星坐标、百度坐标、WGS84坐标转换代码(JS、python版)
火星坐标.百度坐标.WGS84坐标转换代码(JS.python版) 一.JS版本源码 github:https://github.com/wandergis/coordTransform /*** C ...
- java 火星坐标转wgs84_js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
本文实例讲述了js中火星坐标.百度坐标.WGS84坐标转换实现方法.分享给大家供大家参考,具体如下: //定义一些常量 var x_PI = 3.14159265358979324 * 3000.0 ...
- 各坐标系转换,百度、高德、wgs84、cgcs2000坐标系互转
首先申明:转换方法都是网上找的,但是都不全,整理了一下 其中wgs84.cgcs2000互转结果有差异,也就是完全还原不了 先附上百度.高德.wgs84互转方法 js /*** Created by ...
- 转换WGS84、GCJ02、BD09坐标,解决百度高德坐标偏移
转换WGS84.GCJ02.BD09坐标,解决百度高德坐标偏移 做过地图相关开发的同学肯定会遇到这样一个问题:同样的经纬度坐标,在百度地图和高德地图上位置不一样. 关于坐标系 我们通常用经纬度来表示一 ...
- QGIS中百度、高德与WGS84坐标系之间的转换
参考原文链接:https://mp.weixin.qq.com/s/_WxOkDTjgSGrgDwIJ9dJgw 将获取的POI数据复制到excel中编辑,如下图所示,所有数据都聚集在了一列,然后点击 ...
- 地球坐标系(WGS - 84)转火星坐标系(GCJ)
地球坐标系(WGS - 84)转火星坐标系(GCJ) package com.tdt.convert.utils;import java.math.BigDecimal;/*** @author Mr ...
最新文章
- 这是我读过写得最好的【秒杀系统架构】分析与实战!
- 在spring MVC项目中集成Spring session redis (使用spring session框架,redis作为存储缓存)...
- Android调焦函数,高通Android驱动中的对焦马达的配置
- 实至名归!ACM宣布深度学习三巨头共同获得图灵奖
- Win7如何快速打开命令提示符
- VirtualBox安装Kali
- Leetcode题库 125.验证回文串(双指针 C实现)
- CodeForces - 1270D Strange Device(思维+构造)
- 【机器学习】次梯度(subgradient)方法
- Dotnet Core Windows Service
- 迷宫搜索问题最短路_【算法常用模板】总结(更新中)
- python中如何编写代码输入多个数据并把它们放在一个列表中去_10分钟学习函数式Python...
- Linux命令解释之setfacl,getfacl,chattr
- linux7.3的域名配置表,Centos7.3 安装部署Nginx并配置https的方法步骤
- 数据库完整型概念与完整性约束
- 使用公用计算机的用户如何,如何通过设置权限来管理公用电脑?
- wget下载网络资源
- C# 回调函数的实现和应用场景
- 智芯传感推出高性能低功耗ZXP2绝压压力传感器
- 数字信号处理1——离散时间系统与常见信号(matlab)
热门文章
- 20200524 中南民大 2nd SCPC校赛
- PAT_甲级_1071 Speech Patterns (25point(s)) (C++)【字符串处理/单词统计】
- 基于神经网络的毕设题目_自动化毕业设计题目
- 缓冲区溢出基础与实践
- 全面科普科技类展厅中的互动投影翻书系统
- StarUML3.0.+ Mac的破解方法
- matlab解决匀速直线运动,匀速直线运动的意思
- 罗丹明标记鬼笔环肽PHDR1用途
- 【汇智学堂】-JS菜鸟版过河小游戏(之六---过河)
- 三星Samsung SF-331P 驱动