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/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

发表回复

登录后才能评论