一、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-tw/n/293712.html
微信掃一掃
支付寶掃一掃