GCJ-02坐標系的詳細解析

一、GCJ-02坐標是什麼?

GCJ-02又被稱為火星坐標系,是一種對地理坐標的保密加密算法,被中國國家測繪、地理信息局和地方政府採用。GCJ-02坐標通過對WGS-84坐標進行隨機偏移,達到了保密的目的。此坐標系的偏差大約在50-500米之間。

二、百度地圖能設置使用GCJ-02坐標嗎?

在國家法規下,未經授權人同意使用GCJ-02坐標是違法的,因此百度地圖不支持直接設置GCJ-02坐標。但是,很多第三方地圖庫支持GCJ-02坐標,因此如果應用程序要使用GCJ-02坐標,需要使用第三方地圖庫。

三、GCJ-02坐標系和80坐標系

GCJ-02坐標系的誤差和80坐標系的誤差大小差不多,但是由於GCJ-02坐標系的誤差不穩定,因此無法確保同一位置的坐標在不同時間和設備上的一致性。與此相比,80坐標系的誤差穩定,同一位置的坐標保持一致性。

四、奧維地圖的GCJ-02坐標點

奧維地圖使用GCJ-02坐標系,提供了高精度的地圖和路線規劃功能。在奧維地圖中,用戶可以通過直接輸入GCJ-02坐標點來獲取位置和路徑信息。

五、GCJ-02坐標和WGS84坐標的區別

GCJ-02坐標系和WGS84坐標系之間存在一定的差異,主要表現在以下方面:

  • GCJ-02坐標系不是真正的地理坐標系,而是通過加密算法得到的似地理坐標系;
  • GCJ-02坐標系的誤差比WGS84坐標系大,同一位置的坐標可能存在一定程度的偏差;
  • GCJ-02坐標系僅限於在中國境內使用,而WGS84坐標系適用於全球範圍內的地理坐標。

六、GCJ-02坐標和CGCS2000

GCJ-02坐標和CGCS2000是兩種不同的坐標系,各自有自己的特點和應用場景。CGCS2000是新一代國家測量標準坐標系,是由國家測繪局制定的坐標系統,適用於大陸、澳門、香港等地區的地理坐標,精度很高。而GCJ-02坐標系是一種無標準的自主發展的坐標系,主要用於中國本土的GPS定位和地圖服務。因此,在不同的應用場景下,選擇合適的坐標系非常重要。

七、經緯度GCJ-02

/**
* 經緯度轉GCJ-02坐標
*/
public static LatLng convertWGS84ToGCJ02(LatLng wgs84LatLng) {
    if (outOfChina(wgs84LatLng.latitude, wgs84LatLng.longitude)) {
        return wgs84LatLng;
    }
    double dLat = transformLat(wgs84LatLng.longitude - 105.0, wgs84LatLng.latitude - 35.0);
    double dLon = transformLon(wgs84LatLng.longitude - 105.0, wgs84LatLng.latitude - 35.0);
    double radLat = wgs84LatLng.latitude / 180.0 * Math.PI;
    double magic = Math.sin(radLat);
    magic = 1 - ee * magic * magic;
    double sqrtMagic = Math.sqrt(magic);
    dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * Math.PI);
    dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * Math.PI);
    double lat = wgs84LatLng.latitude + dLat;
    double lng = wgs84LatLng.longitude + dLon;
    return new LatLng(lat, lng);
}

八、GCJ是什麼意思的縮寫?

GCJ的全稱是“國測局加密”,是指由中國國家測繪局研發的一種測量坐標加密技術,旨在保護國家安全。GCJ-02坐標系是GCJ加密算法應用於位置服務的一種表現形式。

九、GCJ-02坐標轉2000

/**
* GCJ-02坐標轉國家2000坐標系
*
* @param lon GCJ-02坐標中的經度值
* @param lat GCJ-02坐標中的緯度值
*/
public static Point convertGCJ02To2000(double lon, double lat) {
    double dx = transformLon(lon - 105.0, lat - 35.0);
    double dy = transformLat(lon - 105.0, lat - 35.0);
    double b = lat / 180 * Math.PI;
    double eSq = (a * a - bNg * bNg) / (bNg * bNg);
    double v = a / Math.sqrt(1 - eSq * Math.sin(b) * Math.sin(b));
    double aa = a + dx;
    double bb = (1 - eSq) * v + dy;
    double d = Math.sqrt(aa * aa + bb * bb);
    double theta = Math.atan2(bb, aa);
    double alpha = Math.atan2(bb, aa) - Math.atan2((1 - eSq) * bNg * Math.sin(theta), d);
    double a1 = Math.atan2(Math.sin(alpha), Math.cos(theta));
    double a2 = Math.asin(Math.sin(b) * Math.cos(alpha) + Math.cos(b) * Math.sin(alpha) * Math.cos(theta));
    double l = a2 * 180 / Math.PI;
    double l1 = a1 * 180 / Math.PI + 119.0;
    double x = l1 * 1000000 + 1500000;
    double y = l * 1000000 + 278078.99;
    return new Point(x, y);
}

十、GCJ-02坐標和2000年國家坐標系選取

在實際應用中,需要根據不同的應用場景,選擇合適的坐標系。如果需要在國內進行位置服務和地圖服務,可以選擇GCJ-02坐標系;如果需要進行更高精度的測量和製圖,可以採用2000年國家坐標系。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293712.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 13:14
下一篇 2024-12-26 13:14

相關推薦

  • index.html怎麼打開 – 詳細解析

    一、index.html怎麼打開看 1、如果你已經擁有了index.html文件,那麼你可以直接使用任何一個現代瀏覽器打開index.html文件,比如Google Chrome、…

    編程 2025-04-25
  • Resetful API的詳細闡述

    一、Resetful API簡介 Resetful(REpresentational State Transfer)是一種基於HTTP協議的Web API設計風格,它是一種輕量級的…

    編程 2025-04-25
  • AXI DMA的詳細闡述

    一、AXI DMA概述 AXI DMA是指Advanced eXtensible Interface Direct Memory Access,是Xilinx公司提供的基於AMBA…

    編程 2025-04-25
  • 關鍵路徑的詳細闡述

    關鍵路徑是項目管理中非常重要的一個概念,它通常指的是項目中最長的一條路徑,它決定了整個項目的完成時間。在這篇文章中,我們將從多個方面對關鍵路徑做詳細的闡述。 一、概念 關鍵路徑是指…

    編程 2025-04-25
  • neo4j菜鳥教程詳細闡述

    一、neo4j介紹 neo4j是一種圖形數據庫,以實現高效的圖操作為設計目標。neo4j使用圖形模型來存儲數據,數據的表述方式類似於實際世界中的網絡。neo4j具有高效的讀和寫操作…

    編程 2025-04-25
  • c++ explicit的詳細闡述

    一、explicit的作用 在C++中,explicit關鍵字可以在構造函數聲明前加上,防止編譯器進行自動類型轉換,強制要求調用者必須強制類型轉換才能調用該函數,避免了將一個參數類…

    編程 2025-04-25
  • HTMLButton屬性及其詳細闡述

    一、button屬性介紹 button屬性是HTML5新增的屬性,表示指定文本框擁有可供點擊的按鈕。該屬性包括以下幾個取值: 按鈕文本 提交 重置 其中,type屬性表示按鈕類型,…

    編程 2025-04-25
  • crontab測試的詳細闡述

    一、crontab的概念 1、crontab是什麼:crontab是linux操作系統中實現定時任務的程序,它能夠定時執行與系統預設時間相符的指定任務。 2、crontab的使用場…

    編程 2025-04-25
  • Vim使用教程詳細指南

    一、Vim使用教程 Vim是一個高度可定製的文本編輯器,可以在Linux,Mac和Windows等不同的平台上運行。它具有快速移動,複製,粘貼,查找和替換等強大功能,尤其在面對大型…

    編程 2025-04-25
  • 網站測試工具的詳細闡述

    一、測試工具的概述 在軟件開發的過程中,測試工具是一個非常重要的環節。測試工具可以快速、有效地檢測軟件中的缺陷,提高軟件的質量和穩定性。與此同時,測試工具還可以提高軟件開發的效率,…

    編程 2025-04-25

發表回復

登錄後才能評論