当前位置: 首页 > news >正文

Java地图坐标查询距离内经纬度范围,及距离大小

一、计算两个经纬度坐标的距离

    /**
     * 求两点之间的距离
     * @param long1 A点经度
     * @param lat1 A点纬度
     * @param long2 B点经度
     * @param lat2 B点纬度
     * @return 两点距离
     */
    public double getDistance(double long1, double lat1, double long2, double lat2) {
        double a, b, R;
        R = 6378137;//地球半径
        lat1 = lat1 * Math.PI / 180.0;
        lat2 = lat2 * Math.PI / 180.0;
        a = lat1 - lat2;
        b = (long1 - long2) * Math.PI / 180.0;
        double d;
        double sa2, sb2;
        sa2 = Math.sin(a / 2.0);
        sb2 = Math.sin(b / 2.0);
        d = 2 * R * Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(lat1) * Math.cos(lat2) * sb2 * sb2));
        return d;
    }

 二、获取某个定位点经纬度,固定半径的经纬度范围

    /**
     * 根据经纬度和半径计算经纬度范围
     *
     * @param raidus 单位米
     * @return minLat, minLng, maxLat, maxLng
     */
    public static double[] getAround(double lat, double lon, int raidus) {

        Double latitude = lat;
        Double longitude = lon;

        Double degree = (24901 * 1609) / 360.0;
        double raidusMile = raidus;

        Double dpmLat = 1 / degree;
        Double radiusLat = dpmLat * raidusMile;
        Double minLat = latitude - radiusLat;
        Double maxLat = latitude + radiusLat;

        Double mpdLng = degree * Math.cos(latitude * (Math.PI / 180));
        Double dpmLng = 1 / mpdLng;
        Double radiusLng = dpmLng * raidusMile;
        Double minLng = longitude - radiusLng;
        Double maxLng = longitude + radiusLng;
        return new double[]{minLat, minLng, maxLat, maxLng};

    }

相关文章:

  • Android面试之算法总结
  • Azure SDK 使用指南
  • 如何保障kafka的数据不会重复消费呢,如何防止漏掉呢
  • Es结合kibana查询
  • PyTorch量化技术教程:第一章 PyTorch基础入门
  • 如何在 Windows 上安装并使用 Postman?
  • 问题:md文档转换word,html,图片,excel,csv
  • SICAR标准 汽车焊装生产线触摸屏操作说明
  • LeetCode 第25、27、28题
  • 动态合并任意连续相同行
  • Linux 创建用户和用户组,设置主目录
  • vue中实现元素在界面中自由拖动
  • Flink介绍与安装
  • 4.(vue3.x+vite)接入echarts
  • 前端工程化开篇
  • Redis 如何保证数据一致性:从原理到实践的全面解析
  • 【Flutter入门】1. 从零开始的flutter跨平台开发之旅(概述、环境搭建、第一个Flutter应用)
  • 基于微信小程序的仓储管理系统+论文源码调试
  • Linux程序性能分析
  • 蓝之洋科技以AI智能制造引领变革,推动移动电源产业迈向高端智能化!
  • 脱欧后首次英欧峰会召开前夕,双方却因渔业和青年流动议题僵住了
  • 上千螺母引发的枪支散件案:五金厂老板的儿子被诉,律师作无罪辩护
  • 以色列在加沙发起新一轮强攻,同步与哈马斯展开“无条件谈判”
  • 竞彩湃|英超欧冠悬念持续,纽卡斯尔诺丁汉能否拿分?
  • 缅甸发生5.0级地震
  • “80后”萍乡市安源区区长邱伟,拟任县(区)委书记