WGS84地球坐标系,GCJ02火星坐标系,BD09百度坐标系简介与转换

本文介绍了WGS84、GCJ02(火星坐标系)和BD09(百度坐标系)之间的转换,包括各坐标系之间的转换工具类,如WGS84转GCJ02、GCJ02转BD09等,并提供了相应的转换方法实现。
摘要由CSDN通过智能技术生成

2.2各坐标系转换工具类

package com.jourwon.util;

import com.jourwon.pojo.Point;

/**

  • Description: 各坐标系之间的转换工具类

  • @author JourWon

  • @date Created on 2018年6月19日

*/

public class CoordinateTransformUtils {

// 圆周率π

private static final double PI = 3.1415926535897932384626D;

// 火星坐标系与百度坐标系转换的中间量

private static final double X_PI = 3.14159265358979324 * 3000.0 / 180.0D;

// Krasovsky 1940

// 长半轴a = 6378245.0, 1/f = 298.3

// b = a * (1 - f)

// 扁率ee = (a^2 - b^2) / a^2;

// 长半轴

private static final double SEMI_MAJOR = 6378245.0D;

// 扁率

private static final double FLATTENING = 0.00669342162296594323D;

// WGS84=>GCJ02 地球坐标系=>火星坐标系

public static Point wgs84ToGcj02(double lng, double lat) {

if (outOfChina(lng, lat)) {

return new Point(lng, lat);

}

double[] offset = offset(lng, lat);

double mglng = lng + offset[0];

double mglat = lat + offset[1];

return new Point(mglng, mglat);

}

// GCJ02=>WGS84 火星坐标系=>地球坐标系(粗略)

public static Point gcj02ToWgs84(double lng, double lat) {

if (outOfChina(lng, lat)) {

return new Point(lng, lat);

}

double[] offset = offset(lng, lat);

double mglng = lng - offset[0];

double mglat = lat - offset[1];

return new Point(mglng, mglat);

}

// GCJ02=>WGS84 火星坐标系=>地球坐标系(精确)

public static Point gcj02ToWgs84Exactly(double lng, double lat) {

if (outOfChina(lng, lat)) {

return new Point(lng, lat);

}

double initDelta = 0.01;

double threshold = 0.000000001;

double dLat = initDelta, dLon = initDelta;

double mLat = lat - dLat, mLon =

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值