1. 程式人生 > >高德座標轉GPS座標

高德座標轉GPS座標

/*********GCJ-02 to WGS-84*******/
this.GcjToWgs = function(Longitude,Latitude)
{
    var Dev = CalDev(Longitude,Latitude);


    var RetLat = Latitude - Dev.Lat;


    var RetLon = Longitude - Dev.Lon;


    Dev = this.CalDev(RetLon,RetLat);


    RetLat = Latitude - Dev.Lat;


    RetLon = Longitude - Dev.Lon;


    return {Lon:RetLon,Lat:RetLat};
}
/*********計算偏差***************/
this.CalDev = function(WgLon,WgLat)
{
    var ee = 0.00669342162296594323;


    var a = 6378245.0;


    if (IsOutOfChina(WgLon,WgLat))
    {
        return {Lon:0,Lat:0};
    }
    var Lat = CalLat(WgLon - 105.0, WgLat - 35.0);


    var Lon = CalLon(WgLon - 105.0, WgLat - 35.0);


    var RadLat = WgLat / 180.0 * Math.PI;


    var Magic = Math.sin(RadLat);


    Magic = 1 - ee * Magic * Magic;


    var sqrtMagic = Math.sqrt(Magic);


    Lat = (Lat * 180.0) / ((a * (1 - ee)) / (Magic * sqrtMagic) * Math.PI);


    Lon = (Lon * 180.0) / (a / sqrtMagic * Math.cos(RadLat) * Math.PI);


    return  {Lon:Lon,Lat:Lat};
}


/******判斷座標是否在國外******/
this.IsOutOfChina = function(Lon,Lat)
{
    if (Lon < 72.004 || Lon > 137.8347)
    {
        return true;
    }
    if (Lat < 0.8293 || Lat > 55.8271)
    {
        return true;
    }


    return false;
}


/****** 計算緯度******/
this.CalLat = function(X, Y)
{
    var ResultLat = -100.0 + 2.0 * X + 3.0 * Y + 0.2 * Y * Y + 0.1 * X * Y + 0.2 * Math.sqrt(Math.abs(X));


    ResultLat += (20.0 * Math.sin(6.0 * X * Math.PI) + 20.0 * Math.sin(2.0 * X * Math.PI)) * 2.0 / 3.0;


    ResultLat += (20.0 * Math.sin(Y * Math.PI) + 40.0 * Math.sin(Y / 3.0 * Math.PI)) * 2.0 / 3.0;


    ResultLat += (160.0 * Math.sin(Y / 12.0 * Math.PI) + 320 * Math.sin(Y * Math.PI / 30.0)) * 2.0 / 3.0;


    return ResultLat;
}


 /******計算經度******/
this.CalLon = function(X, Y)
{
    var ResultLon = 300.0 + X + 2.0 * Y + 0.1 * X * X + 0.1 * X * Y + 0.1 * Math.sqrt(Math.abs(X));


    ResultLon += (20.0 * Math.sin(6.0 * X * Math.PI) + 20.0 * Math.sin(2.0 * X * Math.PI)) * 2.0 / 3.0;


    ResultLon += (20.0 * Math.sin(X * Math.PI) + 40.0 * Math.sin(X / 3.0 * Math.PI)) * 2.0 / 3.0;


    ResultLon += (150.0 * Math.sin(X / 12.0 * Math.PI) + 300.0 * Math.sin(X / 30.0 * Math.PI)) * 2.0 / 3.0;


    return ResultLon;

}


地圖雲平臺交流合作 QQ:63747667

郵箱:[email protected]

相關推薦

座標GPS座標

/*********GCJ-02 to WGS-84*******/this.GcjToWgs = function(Longitude,Latitude){    var Dev = CalDev(Longitude,Latitude);    var RetLat = L

MFC+OpenGL 螢幕座標OpenGL座標

    最近在寫一個例子用到了OpenGL,OpenGL的中心點(0, 0)點剛好是我們螢幕的中心點。因為我是需要動態的作圖(畫點、線、圓、弧...)需要平移 縮放圖形,所以我在座標轉換這個問題上卡住了。     滑鼠點選螢幕上的一點可以很方便的獲得通過

java版座標系轉換(火星座標GPS座標、百度座標)

public class Gps {public double wgLat;public double wgLon;public Gps(double wgLat, double wgLon) {setWgLat(wgLat);setWgLon(wgLon);}public double getWg

風場站點表XY地理座標UTM座標 AcrGIS

 風場站點XY地理座標轉UTM座標 1.excel轉shp檔案 1.1表格預處理 開啟風場點座標表WT.xlsx,檢查是否有X、Y列名,若無,新增一行。儲存退出。 1.2開啟Arcgis,新建一個空白地圖BlankMap。 1.3載入原始WGS84地

百度座標84座標

function getLocation(){              x_PI = 3.14159265358979324 * 3000.0 / 180.0;              PI = 3.1415926535897932384626;             

PIE SDK專題製圖下螢幕座標地圖座標

  1.    功能簡介     PIESDK提供了專題製圖下滑鼠螢幕座標轉地圖座標功能。 2. 功能實現說明 2.1螢幕座標轉地圖座標        此功能用到了IPageLay

一、WebGL螢幕座標世界座標

最近在研究一位大神用webgl寫的三維地圖引擎,在研究原始碼的過程中學到了很多以前沒注意到的東西,特地在此記錄一番 平常WebGL渲染的時候,如果順過來看的話,座標轉換會經過如下幾個過程 區域性座標=>世界座標=>觀察座標=>裁剪座標=&g

Unity 世界座標UI座標

Unity中有四種座標系 1. World Space(世界座標):三維空間座標,浮點數。 2.Screen Space(螢幕座標):以畫素來定義的,以螢幕的左下角為(0,0)點,右上角為(Screen.width,Screen.height),Z的位置是以相機的世界單位來衡

Android:GPS座標地圖座標

最近做GPS定位,並且將獲得的座標顯示在高德地圖上,但是實際效果跟我們期望的是有偏差的。通過查閱資料,才知道有地球座標、火星座標之說。 一、座標分類 地圖座標大致分為幾種: 1、GPS、WGS84,也就是原始座標體系,這是國際公認的世界標準座標體系; 2、GCJ-02,又

座標百度(傳入經度、緯度)

高德座標轉百度(傳入經度、緯度) /* * 高德座標轉百度(傳入經度、緯度),得到百度的經緯度 * @param gdlng 高德經度 * @param gdlat 高德緯度 */ function bd_encrypt(gdlng, gdlat){ var X_PI = Math.PI

java地圖根據座標與具體地址互,計算兩地距離

package com.shineyoo.common.utils; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.io.BufferedReade

android跳手機百度騰訊谷歌地圖、地圖傳座標座標偏移、base64解碼相關

調起百度的native app http://developer.baidu.com/map/uri-introandroid.htm#idmykey47 座標轉換 http://api.map.baidu.com/ag/coord/convert?from=2&

大地座標BLH平面座標xyh(斯投影座標正算) Java版

技術背景   做過位置資料處理的小夥伴基本上都會遇到座標轉換,而基於高斯投影原理的大地座標轉平面座標就是其中一種座標轉換,座標轉換的目的就是方便後面資料的處理工作,大地座標轉高斯平面座標常用的有兩種,即3°帶和6°帶,具體採用哪種根據實際情況而定。 計算原理   6°帶帶號n與相應的中央子午線L0經度的

ionic2 geolocation定位,將geolocation座標轉換為百度座標地圖座標

安裝 geolocation 外掛 執行以下命令 npm install --save @ionic-native/geolocation 將geolocation外掛在app.module.ts內宣告 import { Geolocation } from '@ionic-nativ

地圖座標點點選彈出框

this.pointSimplifierIns.on('pointClick pointMouseover pointMouseout', function(e, record) {    if(e.type === 'pointClick'){    &

谷歌 百度 GPS座標

現已服務500使用者,獨家釋出!專家團隊 本程式庫支援不同地圖座標及真實座標的相互轉換,離線,實時!(支援谷歌、百度等國內地圖服務商)提供動態連結庫DLL及呼叫原始碼; 可根據需求,定製webservice及相關介面;不受環境限制(不再依賴於資料庫、網路或者硬體); 多種語言支援;實時互轉支

座標轉換-大地斯平面&平面座標轉換

楔子 以前呢,總感覺大學老師教的都沒用,基本上都用不上。得了,這兩天碰上了。 我們公司給甲方做了個小程式,因為業務原因必須使用深圳獨立座標系。 一個業務需求-導航。因為我們是獲取手機的gps座標,我們起先是使用的甲方提供的座標轉換服務,發現84大地轉到深圳獨立座標(深圳高斯平面座標)

【Android】地圖根據2個座標智慧縮放地圖

需求: 在地圖上給定2個座標點,然後將2個座標點通過縮放都能顯示出來。 實現: 通過查閱高德地圖接入文件和API能找到縮放的API高德地圖文件,看到以下說明 限制地圖的顯示範圍 從地圖 SDK V4.1.0 起新增了設定地圖顯示範圍的方法,手機螢幕僅顯示設定的地圖

座標與百度座標的相互轉換

//百度座標轉高德(傳入經度、緯度) function bd_decrypt(bd_lng, bd_lat) {     var X_PI = Math.PI * 3000.0 / 180.0;     var x = bd_lng - 0.0065;     var y =

php+地圖webapi jsapi 實現 當前位置與目標位置距離 並按照距離排序(座標逆轉換)

<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak='自己申請'&s=1"></script> <script type="text/javas