• 大小: 2KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: 其他
  • 标签:

资源简介

地图坐标转换,火星、WGS84、BD09 火星、WGS84、BD09、GCJ02,地图坐标转换

资源截图

代码片段和文件信息

package com.ncjk.bases.common.utils;

/**
 * Created by CaiHB on 2015/11/2 15:31.
 * E-mail:caihaobing@sina.cn
 */
public class CoordinateConvert {

    /**
     * 坐标转换程序
     * 


     * WGS84坐标系:即地球坐标系,国际上通用的坐标系。Earth
     * 


     * GCJ02坐标系:即火星坐标系,WGS84坐标系经加密后的坐标系。Mars
     * 


     * BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系。  Bd09
     * 


     * 搜狗坐标系、图吧坐标系等,估计也是在GCJ02基础上加密而成的。
     * 


     * 百度地图API        百度坐标
     * 腾讯搜搜地图API 火星坐标
     * 搜狐搜狗地图API 搜狗坐标*
     * 阿里云地图API     火星坐标
     * 图吧MapBar地图API 图吧坐标
     * 高德MapABC地图API 火星坐标
     * 灵图51ditu地图API 火星坐标
     */
    private static double PI = Math.PI;
    private static double AXIS = 6378245.0;  //
    private static double OFFSET = 0.00669342162296594323;  //(a^2 - b^2) / a^2
    private static double X_PI = PI * 3000.0 / 180.0;

    //GCJ-02=>BD09 火星坐标系=>百度坐标系
    public static double[] gcj2BD09(double glat double glon) {
        double x = glon;
        double y = glat;
        double[] latlon = new double[2];
        double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);
        double theta = Math.atan2(y x) + 0.000003 * Math.cos(x * X_PI);
        latlon[0] = z * Math.sin(theta) + 0.006;
        latlon[1] = z * Math.cos(theta) + 0.0065;
        return latlon;
    }

    //BD09=>GCJ-02 百度坐标系=>火星坐标系
    public static double[] bd092GCJ(double glat double glon) {
        double x = glon - 0.0065;
        double y = glat - 0.006;
        double[] latlon = new double[2];
        double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
        double theta = Math.atan2(y x) - 0.000003 * Math.cos(x * X_PI);
        latlon[0] = z * Math.sin(theta);
        latlon[1] = z * Math.cos(theta);
        return latlon;
    }

    //BD09=>WGS84 百度坐标系=>地球坐标系
    public static double[] bd092WGS(double glat double glon) {
        double[] latlon = bd092GCJ(glat glon);
        return gcj2WGS(latlon[0] latlon[1]);
    }

    // WGS84=》BD09   地球坐标系=>百度坐标系
    public static double[] wgs2BD09(double wgLat double wgLon) {
        double[] latlon = wgs2GCJ(wgLat wgLon);
        return gcj2BD09(latlon[0] latlon[1]);
    }

    // WGS84=》GCJ02   地球坐标系=>火星坐标系
    public static double[] wgs2GCJ(double wgLat double wgLon) {
        double[] latlon = new double[2];
        if (outOfChina(wgLat wgLon)) {
            latlon[0] = wgLat;
            latlon[1] = wgLon;
            return latlon;
        }
        double[] deltaD = delta(wgLat wgLon);
        latlon[0] = wgLat + deltaD[0];
        latlon[1] = wgLon + deltaD[1];
        return latlon;
    }

    //GCJ02=>WGS84   火星坐标系=>地球坐标系(粗略)
    public static double[] gcj2WGS(double glat double glon) {
        double[] latlon = new double[2];
        if (outOfChina(glat glon)) {
            latlon[0] = glat;
            latlon[1] = glon;
            return latlon;
        }
        double[] deltaD = delta(glat glon);
        latlon[0


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7260  2017-12-14 08:57  CoordinateConvert.java

评论

共有 条评论

相关资源