百度坐標(BD09)、國測局坐標(火星坐標,GCJ02)、和WGS84坐標系之間的轉換

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><script>/*** * 百度坐標(BD09)、國測局坐標(火星坐標,GCJ02)、和WGS84坐標系之間的轉換*///定義一些常量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);}var zb =  [[117.18081017153435,39.180351072353005],[117.18869831274674,39.172327705878956],[117.19865736657812,39.162310151786585],[117.19867418187522,39.16206056849401],[117.19861652942734,39.161933913947195],[117.19128459695293,39.15406191112996],[117.18436695927721,39.14805767152242],[117.18409784984459,39.14760548894955],[117.18368777833075,39.14736200482281],[117.17579902867737,39.14568051561204],[117.17517219175295,39.145291603176815],[117.17454535482852,39.1447860137979],[117.17409403224167,39.14400817689392],[117.17354912836254,39.142786952618906],[117.17350905478082,39.141150049556416],[117.17354912836254,39.1406216739866],[117.17368305709431,39.13841120991569],[117.17377790333029,39.13808016680974],[117.17456038476769,39.137742991676106],[117.17470265412027,39.13758972971803],[117.17471846182542,39.13651688666937],[117.17471869877892,39.13622798955586],[117.17437302902323,39.12927034970724],[117.17335825329019,39.12055515945039],[117.1734196029791,39.11326106865883],[117.17308446162815,39.100752269326904],[117.1730419555326,39.09499586854889],[117.17611745748218,39.07799577159699],[117.17740039157604,39.072955172895945],[117.17820999825722,39.070710375407],[117.1791583946569,39.0690581588394],[117.1805231602064,39.06781897103181],[117.18235055814654,39.06618464659786],[117.18547441310773,39.06222084933921],[117.18688465058597,39.0597650746997],[117.18764799403016,39.057286351047026],[117.18838820585404,39.05460995027451],[117.18894336472226,39.052436422659895],[117.18909008942717,39.050849520419234],[117.18909008942717,39.048999233208264],[117.18911322104753,39.04718482683441],[117.18914892971304,39.0439627481033],[117.18914892971304,39.03983056922391],[117.18933398266853,39.03785422432469],[117.19016672097013,39.03706367088628],[117.19236308813385,39.03667310300159],[117.19639785932725,39.03594429210341],[117.19971203374354,39.035305706070375],[117.20266653031513,39.034766894616865],[117.2052896766898,39.034282952274765],[117.20811571689006,39.03380400203159],[117.21107021346171,39.03322526615625],[117.21153265640226,39.032985787855836],[117.21150696512876,39.031868211725424],[117.21166111277557,39.02913406704522],[117.21171247447069,39.02725670009224],[117.21168678319526,39.026198908820135],[117.21130141407707,39.0250013901649],[117.21050498456736,39.02412319692388],[117.21009392417375,39.0234645448339],[117.20968286378218,39.02274600828264],[117.20981132015356,39.020550434681695],[117.20997778083591,39.016765575794864],[117.21013623909391,39.013219745822965],[117.21019962239666,39.01065875805031],[117.21023563653279,39.01012983796761],[117.21150330258968,39.008824673767435],[117.21277096864776,39.00759336470858],[117.21391186809927,39.006829942327784],[117.21587675048852,39.00609113863044],[117.21838039095218,39.00532770003693],[117.21940778292611,39.00499564334342],[117.22035853246945,39.00366575664913],[117.2212775903613,39.00154773733959],[117.22257694806956,38.998863179892965],[117.22330585605204,38.99699131810107],[117.22357150165982,38.994245917197304],[117.22357150165982,38.99286656541702],[117.22334966010027,38.991019177169505],[117.2229376686314,38.98860518385564],[117.22235630852248,38.98602480802788],[117.22226123356836,38.98496554228058],[117.22305352485364,38.98370918328854],[117.22416273265497,38.98210790911887],[117.22660298981464,38.98067904928331],[117.2289481720216,38.97942261422247],[117.2312848656959,38.978082757127055],[117.2353097054285,38.97596397212331],[117.23876409543425,38.97404222857523],[117.24033427181308,38.97312217637892]];var zhzb =[];for(var i = 0; i< zb.length;i++){var lng = zb[i][0];var lat = zb[i][1];//  console.log(lng+"--------------------------"+lat)var abn = wgs84togcj02(lng,lat);// console.log(abn)zhzb.push(abn);}console.log("高德坐標-gcj02------   "+JSON.stringify(zhzb));var baidu =[];for(var i = 0; i< zhzb.length;i++){var lng = zhzb[i][0];var lat = zhzb[i][1];// console.log(lng+"--------------------------"+lat)var abn = gcj02tobd09(lng,lat);//  console.log(abn)baidu.push(abn);}console.log("百度坐標-bd09------   "+JSON.stringify(baidu));</script></body>
</html>

84坐標直接轉換成百度坐標系

            var x_PI = 3.14159265358979324 * 3000.0 / 180.0;var PI = 3.1415926535897932384626;var a = 6378245.0;var ee = 0.00669342162296594323;function wgs84tobd(lng, lat) {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 lat = lat + dlat;var lng = lng + dlng;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]}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}var gg = wgs84tobd(119.86,39.56); //調用轉換的方法輸入的是84坐標系 返回的是百度坐標系console.log(gg);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37416.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37416.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37416.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c51單片機串口通信(中斷方式接收數據)(單片機--單片機通信)示例代碼 附proteus圖

單片機一般采用中斷方式接受數據&#xff0c;這樣便于及時處理 #include "reg51.h" #include "myheader.h" #define uchar unsigned char int szc[10]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; int bufferc[6]{0}; int sza[6]{0x01,0x02,0x0…

HOT96-只出現一次的數字

leetcode原題鏈接&#xff1a;只出現一次的數字 題目描述 給你一個 非空 整數數組 nums &#xff0c;除了某個元素只出現一次以外&#xff0c;其余每個元素均出現兩次。找出那個只出現了一次的元素。你必須設計并實現線性時間復雜度的算法來解決此問題&#xff0c;且該算法只使…

TEXTure環境配置,跑通inference的demo

TEXTure 環境配置安裝kaolin這個包,這里可能會遇到各種問題配置huggingface的訪問令牌 運行Text Conditioned Texture Generation指令報錯1報錯2成功運行 查看結果查看貼圖后的三維網格模型 環境配置 # 創建一個名為texture的環境 conda create -n texture python3.9 -y# 激活…

EasyLLM:簡化語言模型處理,實現 OpenAI 和 Hugging Face 客戶端的無縫切換

前言 在這短短不到一年的時間里&#xff0c;國內外涌現的大型語言模型&#xff08;LLM&#xff09;可謂是百花齊放&#xff0c;不管是開源還是閉源都出現了一些非常優秀的模型&#xff0c;然而在利用LLM進行應用開發的時候&#xff0c;會發現每個模型從部署、到訓練、微調、AP…

人工智能任務1-【NLP系列】句子嵌入的應用與多模型實現方式

大家好&#xff0c;我是微學AI&#xff0c;今天給大家介紹一下人工智能任務1-【NLP系列】句子嵌入的應用與多模型實現方式。句子嵌入是將句子映射到一個固定維度的向量表示形式&#xff0c;它在自然語言處理&#xff08;NLP&#xff09;中有著廣泛的應用。通過將句子轉化為向量…

ASP.NET Core - 緩存之分布式緩存

分布式緩存是由多個應用服務器共享的緩存&#xff0c;通常作為訪問它的應用服務器的外部服務進行維護。 分布式緩存可以提高 ASP.NET Core 應用的性能和可伸縮性&#xff0c;尤其是當應用由云服務或服務器場托管時。 與其他將緩存數據存儲在單個應用服務器上的緩存方案相比&am…

沁恒ch32V208處理器開發(三)GPIO控制

目錄 GPIO功能概述 CH32V2x 微控制器的GPIO 口可以配置成多種輸入或輸出模式&#xff0c;內置可關閉的上拉或下拉電阻&#xff0c;可以配置成推挽或開漏功能。GPIO 口還可以復用成其他功能。端口的每個引腳都可以配置成以下的多種模式之一&#xff1a; 1 浮空輸入 2 上拉輸入…

AMEYA360:DNB1101大唐恩智浦工規級電池管理芯片

大唐恩智浦作為全球領先的半導體供應商&#xff0c;一直致力于為全球客戶提供高質量的解決方案。在電池管理芯片領域&#xff0c;大唐恩智浦推出的DNB1101可謂是一款工規級的電池管理芯片&#xff0c;其卓越的性能和可靠性成為市場上備受全球領先的半導體供應商&#xff0c;一直…

c#編碼技巧(十四):全面總結delegate、Func委托的寫法演變

delegate委托對于初學者來說不太好理解。 按筆者的經驗&#xff0c;delegate本質是函數指針&#xff0c;可以把它理解為某一類方法的入口&#xff0c;把他翻譯為&#xff1a;“長得像XXX的函數方法&#xff08;入參是什么、返回值是什么&#xff09;”可能更容易理解。 以下示例…

2023杭電多校第7場M題-M. Minimal and Maximal XOR Sum

題目鏈接&#xff1a;csoj | M. Minimal and Maximal XOR Sum (scnu.edu.cn) 解題思路&#xff1a; 最小值&#xff1a;每次操作的區間長度為2&#xff0c;即交換兩個相鄰數&#xff0c;每次異或2(10)&#xff0c;故最小值肯定為2(10)或0(00)&#xff0c;如果是偶排序最小值是…

Java接口壓力測試—如何應對并優化Java接口的壓力測試

導言 在如今的互聯網時代&#xff0c;Java接口壓力測試是評估系統性能和可靠性的關鍵一環。一旦接口不能承受高并發量&#xff0c;用戶體驗將受到嚴重影響&#xff0c;甚至可能導致系統崩潰。因此&#xff0c;了解如何進行有效的Java接口壓力測試以及如何優化接口性能至關重要…

SpringBoot復習:(48)RedisAutoConfiguration自動配置類

RedisAutoConfiguration類代碼如下&#xff1a; 可以看到在這個類中配置了2個bean: redisTemplate和stringRedisTemplate. 而它通過EnableConfigurationProperties(RedisProperties.class)注解&#xff0c;把配置文件中配置的Redis相關的信息引入進來了&#xff0c;RedisPrope…

安裝Linux操作系統CentOS 6詳細圖文步驟

為滿足業務對Linux操作系統部署的要求&#xff0c;本文檔主要提供CentOS 6操作系統的最小化安裝和基本配置, 安裝本系統建議最少1GB內存和2GB磁盤空間。 1、 使用光盤或者掛載ISO鏡像&#xff0c;在出現如下圖形界面時選擇【Install or upgrade an existing system】并按Ent…

CLickhouse核心特性

目錄 CLickhouse核心特性 1 完備的DBMS功能 2 列式存儲與數據壓縮 3 向量化執行引擎 4 關系模型與SQL查詢 5 多樣化的表引擎 6 多線程與分布式 7 多主架構 8 在線查詢 9 數據分片與分布式查詢 Clickhouse適用場景 Clickhouse不適用場景 Clickhouse名稱含義 CLickh…

P8642 [藍橋杯 2016 國 AC] 路徑之謎

[藍橋杯 2016 國 AC] 路徑之謎 題目描述 小明冒充 X X X 星球的騎士&#xff0c;進入了一個奇怪的城堡。 城堡里邊什么都沒有&#xff0c;只有方形石頭鋪成的地面。 假設城堡地面是 n n n\times n nn 個方格。如圖所示。 按習俗&#xff0c;騎士要從西北角走到東南角。 …

C/C++中const關鍵字詳解

為什么使用const&#xff1f;采用符號常量寫出的代碼更容易維護&#xff1b;指針常常是邊讀邊移動&#xff0c;而不是邊寫邊移動&#xff1b;許多函數參數是只讀不寫的。const最常見用途是作為數組的界和switch分情況標號(也可以用枚舉符代替)&#xff0c;分類如下&#xff1a;…

音視頻 vs2017配置FFmpeg

vs2017 ffmpeg4.2.1 一、首先我把FFmpeg整理了一下&#xff0c;放在C盤 二、新建空項目 三、添加main.cpp&#xff0c;將bin文件夾下dll文件拷貝到cpp目錄下 #include<stdio.h> #include<iostream>extern "C" { #include "libavcodec/avcodec.h&…

【Docker】使用 Docker Registry 搭建自己的 Docker 鏡像倉庫

使用 Docker Registry 搭建自己的 Docker 鏡像倉庫 在使用 Docker 進行應用程序的開發和部署時&#xff0c;使用 Docker 鏡像倉庫是一個很好的實踐。它允許集中存儲和管理 Docker 鏡像&#xff0c;方便團隊協作和版本控制。在本文中&#xff0c;將介紹如何使用 Docker Registr…

Nginx隨筆

Nginx下載鏈接 安裝命令&#xff1a; apt update apt install nginx 一、基礎命令&#xff08;Ubuntu&#xff09; 1、在全局 nginx -t //檢查Nginx的配置文件是否有錯 systemctl start nginx //啟動Nginx systemctl stop nginx //停止Nginx systemctl status nginx //查…

【數據結構與算法——TypeScript】圖結構(Graph)

【數據結構與算法——TypeScript】 圖結構(Graph) 認識圖結構以及特性 什么是圖? 在計算機程序設計中&#xff0c;圖結構 也是一種非常常見的數據結構。 但是&#xff0c;圖論其實是一個非常大的話題 認識一下關于圖的一些內容 圖的抽象數據類型一些算法實現。 什么是圖?…