java实现根据经纬度算距离,java计算经纬度

本文目录一览:

java 里 两点的经度纬度怎么算距离

/**

* 计算地球上任意两点(经纬度)距离

*

* @param long1

* 第一点经度

* @param lat1

* 第一点纬度

* @param long2

* 第二点经度

* @param lat2

* 第二点纬度

* @return 返回距离 单位:米

*/

public static double Distance(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;

}

java如何用经纬度计算两点水平和垂直距离

/** 

 * 计算地球上任意两点(经纬度)距离 

 *  

 * @param long1 

 *            第一点经度 

 * @param lat1 

 *            第一点纬度 

 * @param long2 

 *            第二点经度 

 * @param lat2 

 *            第二点纬度 

 * @return 返回距离 单位:米 

 */  

public static double Distance(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;  

}

如何根据经纬度计算距离的java代码

思路是:通过传入地址作为参数拼接url调用百度地图,然后解析返回的页面,提取经纬度坐标。以下为具体步骤1、修改excel表中的属性名(方便后面用查询读取)然后倒入到数据库。2、代码实现

JAVA,已知当前经纬度和距离,计算符合距离条件的经度最大值、最小值和纬度的最大值、最小值。

//拿走不谢

private final static double R = 6370996.81;

private final static double PI = 3.14159265;

private final static double RAD = Math.PI / 180.0;

/// summary

/// 根据提供的经度和纬度、以及半径,取得此半径内的最大最小经纬度

/// /summary

/// param name=”lat”纬度/param

/// param name=”lon”经度/param

/// param name=”raidus”半径(米)/param

/// returns/returns

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 * (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 };

}

/// summary

/// 根据提供的两个经纬度计算距离(米)

/// /summary

/// param name=”lng1″经度1/param

/// param name=”lat1″纬度1/param

/// param name=”lng2″经度2/param

/// param name=”lat2″纬度2/param

/// returns/returns

public static double GetDistance(double lng1, double lat1, double lng2, double lat2)

{

double radLat1 = lat1 * RAD;

double radLat2 = lat2 * RAD;

double a = radLat1 – radLat2;

double b = (lng1 – lng2) * RAD;

double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +

Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));

s = s * R;

s = Math.round(s * 10000) / 10000;

return s;

}

原创文章,作者:RAFK,如若转载,请注明出处:https://www.506064.com/n/133435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
RAFKRAFK
上一篇 2024-10-03 23:58
下一篇 2024-10-03 23:58

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论