当前位置:网站首页>Sky map coordinate system to Gaode coordinate system WGS84 to GCJ02
Sky map coordinate system to Gaode coordinate system WGS84 to GCJ02
2022-08-04 01:32:00 【sr_www】
let [lng, lat] = [116.391358342, 39.9049662090001]
console.log([lng, lat].toString())
console.log(wgs84Togcj02(lng, lat).toString())
function wgs84Togcj02(lng, lat) {
if (out_of_china(lng, lat)) {
console.log('国外')
return [lng, lat]
}
//定义一些常量
//GCJ02 转换为 WGS84
const x_PI = 3.14159265358979324 * 3000.0 / 180.0
const PI = 3.1415926535897932384626
const a = 6378245.0
const ee = 0.00669342162296594323
let dlat = transformlat(lng - 105.0, lat - 35.0)
let dlng = transformlng(lng - 105.0, lat - 35.0)
let radlat = lat / 180.0 * PI
let magic = Math.sin(radlat)
magic = 1 - ee * magic * magic
let 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]
//return [lng * 2 - mglng, lat * 2 - mglat]
}
function out_of_china(lng, lat) {
return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false)
}
function transformlat(lng, lat) {
const x_PI = 3.14159265358979324 * 3000.0 / 180.0
const PI = 3.1415926535897932384626
const a = 6378245.0
const ee = 0.00669342162296594323
let 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) {
const x_PI = 3.14159265358979324 * 3000.0 / 180.0
const PI = 3.1415926535897932384626
const a = 6378245.0
const ee = 0.00669342162296594323
let 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
}
边栏推荐
- typescript56 - generic interface
- XSS - Bypass for loop filtering
- redis中常见的问题(缓存穿透,缓存雪崩,缓存击穿,redis淘汰策略)
- LeetCode third topic (the Longest Substring Without Repeating Characters) trilogy # 3: two optimization
- Observability:你所需要知道的关于 Syslog 的一些知识
- 数组_滑动窗口 | leecode刷题笔记
- Vant3—— 点击对应的name名称跳转到下一页对应的tab栏的name的位置
- 工程制图平面投影练习
- What warehouse management problems can WMS warehouse management system solve in the electronics industry?
- 2022 China Computing Power Conference released the excellent results of "Innovation Pioneer"
猜你喜欢
initramfs详解----添加硬盘驱动并访问磁盘
虚拟机CentOS7中无图形界面安装Oracle
typescript58 - generic classes
typescript55 - generic constraints
typescript48 - type compatibility between functions
How to find the cause of Fiori Launchpad routing errors by single-step debugging
ASP.NET 获取数据库的数据并写入到excel表格中
nodejs安装及环境配置
Flink jdbc connector 源码改造sink之 clickhouse多节点轮询写与性能分析
Observability:你所需要知道的关于 Syslog 的一些知识
随机推荐
GraphQL背后处理及执行过程是什么
Quickly build a website with static files
可变字符串
字符串变形
XSS - Bypass for loop filtering
静态文件快速建站
html select标签赋值数据库查询结果
Web3 security risks daunting?How should we respond?
Flink jdbc connector 源码改造sink之 clickhouse多节点轮询写与性能分析
The 600MHz band is here, will it be the new golden band?
网络带宽监控,带宽监控工具哪个好
计算首屏时间
5.scrapy中间件&分布式爬虫
C 学生管理系统_分析
pygame 中的transform模块
vxe-table 从页面批量删除数据 (不动数据库里的数据)
Summary of GNSS Articles
即席查询——Presto
GNSS【0】- 专题
MongoDB数据接入实践