java js 经纬度转换 大地坐标(高斯投影坐标)与经纬度互相转换

文章介绍了在Java和JavaScript中实现的大地坐标(高斯投影坐标)与经纬度之间的转换方法,支持多种坐标系统(西安80、北京54)和带宽(3度、6度)的转换。
摘要由CSDN通过智能技术生成

项目中有大地坐标(高斯投影坐标)与经纬度互相转换的需求 写了个工具类;

有java和js代码

如图 java代码中将坐标系和带宽已作为参数传入方法,使用时只需调用不同方法:

js端没有将坐标系和带宽作为参数 如果有需要可以替换注释地方 或者自行修改为传参方式:

接下来贴代码:

java:

CoordinateUtil.java
package coordinate;

/**
 * @date 2023/9/27
 */

public class CoordinateUtil {

    private CoordinateUtil() {
    }

    /**
     * 大地坐标(高斯投影坐标)转换成经纬度 3度带 西安80坐标系
     *
     * @param x x坐标
     * @param y y坐标
     * @return 返回经纬度对象
     */
    public static Coordinate zoneWide3Xian80ToLatitudeAndLongitude(double x, double y) {
        return gaussToLatitudeAndLongitude(x, y, "80", 3);
    }

    /**
     * 经纬度 3度带 西安80坐标系转换成大地坐标(高斯投影坐标)
     *
     * @param x x坐标
     * @param y y坐标
     * @return 返回经纬度对象
     */
    public static Coordinate latitudeAndLongitudeToZoneWide3Xian80(double x, double y) {
        return latitudeAndLongitudeToGauss(x, y, "80", 3);
    }


    /**
     * 大地坐标(高斯投影坐标)转换成经纬度 6度带 西安80坐标系
     *
     * @param x x坐标
     * @param y y坐标
     * @return 返回经纬度对象
     */
    public static Coordinate zoneWide6Xian80ToLatitudeAndLongitude(double x, double y) {
        return gaussToLatitudeAndLongitude(x, y, "80", 6);
    }

    /**
     * 经纬度 6度带 西安80坐标系转换成大地坐标(高斯投影坐标)
     *
     * @param x x坐标
     * @param y y坐标
     * @return 返回经纬度对象
     */
    public static Coordinate latitudeAndLongitudeToZoneWide6Xian80(double x, double y) {
        return latitudeAndLongitudeToGauss(x, y, "80", 6);
    }

    /**
     * 大地坐标(高斯投影坐标)转换成经纬度 3度带 北京54坐标系
     *
     * @param x x坐标
     * @param y y坐标
     * @return 返回经纬度对象
     */
    public static Coordinate zoneWide3BeiJing54ToLatitudeAndLongitude(double x, double y) {
        return gaussToLatitudeAndLongitude(x, y, "54", 3);
    }

    /**
     * 经纬度 3度带 北京54坐标系转换成大地坐标(高斯投影坐标)
     *
     * @param x x坐标
     * @param y y坐标
     * @return 返回经纬度对象
     */
    public static Coordinate latitudeAndLongitudeToZoneWide3BeiJing54(double x, double y) {
        return latitudeAndLongitudeToGauss(x, y, "54", 3);
    }


    /**
     * 大地坐标(高斯投影坐标)转换成经纬度 6度带 北京54坐标系
     *
     * @param x x坐标
     * @param y y坐标
     * @return 返回经纬度对象
     */
    public static Coordinate zoneWide6BeiJing54ToLatitudeAndLongitude(double x, double y) {
        return gaussToLatitudeAndLongitude(x, y, "54", 6);
    }

    /**
     * 经纬度 6度带 北京54坐标
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值