概述
经纬度在地图应用中常见,一般结合路网信息库,进行地图应用开发(流量、路况等),此次从理计算两点经纬度的直线距及最短运行时间预研,实现下述表达式:
package com.sunshine.app.utils; import java.text.SimpleDateFormat; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class DeckUtils { public static final String TYPE = "yyyy-MM-dd HH:mm:ss"; /** * 地球半径 */ public static double EARTH_RADIUS = 6378.137; private static Logger log = LoggerFactory.getLogger(DeckUtils.class); /** * 两时间之差(小时) * @param dateStr1 * @param dateStr2 * @return * @throws Exception */ public static float diffHours(String dateStr1, String dateStr2) throws Exception { SimpleDateFormat sd = new SimpleDateFormat(TYPE); long l1 = sd.parse(dateStr1).getTime(); long l2 = sd.parse(dateStr2).getTime(); long diff = Math.abs(l1 - l2); float result = (float) diff / 1000 * 60 * 60; return Float.valueOf(new java.text.DecimalFormat("0.0").format(result)); } /** * 两时间之差(分钟) * * @param dateStr1 * @param dateStr2 * @return * @throws Exception */ public static float diffMinute(String dateStr1, String dateStr2) throws Exception { SimpleDateFormat sd = new SimpleDateFormat(TYPE); long l1 = sd.parse(dateStr1).getTime(); long l2 = sd.parse(dateStr2).getTime(); long diff = Math.abs(l1 - l2); float result = (float) diff / 1000 * 60; return Float.valueOf(new java.text.DecimalFormat("0.0").format(result)); } /** * 两点经纬度之间距离(米) * @param lat1Str * @param lng1Str * @param lat2Str * @param lng2Str * @return */ public static double getDistance(String lat1Str, String lng1Str, String lat2Str, String lng2Str) { Double lat1 = Double.parseDouble(lat1Str); Double lng1 = Double.parseDouble(lng1Str); Double lat2 = Double.parseDouble(lat2Str); Double lng2 = Double.parseDouble(lng2Str); double radLat1 = rad(lat1); double radLat2 = rad(lat2); double a = radLat1 - radLat2; double b = rad(lng1) - rad(lng2); 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 * EARTH_RADIUS; s = Math.round(s * 10000) / 10000; return s; } private static double rad(double d) { return d * Math.PI / 180.0; } public static float getMinElapsetime(double meter, int speed) { float km = (float) meter / 1000; float elapse = (float) km / speed; return Float.valueOf(new java.text.DecimalFormat("0.0").format(elapse)); } public static void main(String[] args) { try { System.out.println(DeckUtils.diffHours("2016-09-11 12:00:00", "2016-09-11 12:10:00")); double meter = getDistance("129.0043", "28.0344", "129.1234", "28.7008"); float elapse = getMinElapsetime(meter, 120); System.out.println("运行时间:" + elapse); } catch (Exception e) { e.printStackTrace(); } } }
相关推荐
在Java编程中,根据两点的经纬度来计算距离是一项常见的任务,特别是在地理信息系统(GIS)或者定位服务相关的应用中。这个任务通常涉及到地球表面的距离计算,因为经纬度是地球坐标系统的一部分。以下是一些相关的...
Java计算两个经纬度点之间距离(以米为单位)算法, 纯Java代码, 可供参考。 在具体项目中使用过。
"计算两个经纬度之间的距离Java"这个主题,涉及到地理坐标系统、Haversine公式以及高德地图API的运用。 首先,我们需要了解地理坐标系统。地球被抽象为一个球体,每个位置由经度和纬度来唯一标识。经度是从本初子午...
在JAVA编程中,计算两点经纬度之间的距离是一个常见的地理计算任务,主要应用于地图应用、导航系统或者地理位置服务等。这个任务通常使用哈弗辛公式(Haversine formula)来实现,该公式基于球面三角学,可以计算...
总的来说,Java计算两个经纬度之间的距离并进行排序,涉及了地理坐标、数学公式、对象排序等多个知识点,是GIS(地理信息系统)和定位服务开发中的常见任务。通过上述方法,你可以有效地实现这一功能。
已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。
在IT行业中,尤其是在地理信息系统(GIS)或者地图应用开发中,计算地球上两点之间的距离和方位角是一项基础且重要的任务。本篇文章将详细讲解如何利用Java编程语言实现这一功能,主要基于给定的"经纬度计算"标签...
Haversine公式基于球面三角学,用于计算地球上两点之间的大圆距离,这是两点间最短路径。公式如下: \[ a = \sin^2\left(\frac{\Delta \phi}{2}\right) + \cos(\phi_1) \cdot \cos(\phi_2) \cdot \sin^2\left(\frac...
"电子-根据两点经纬度计算距离.doc" 根据两点经纬度计算距离是基于地球坐标系的概念。地球坐标系是由经度和纬度组成的。经度是指从本初子午线到某点的水平角距离,纬度是指某点与地球赤道面的夹角。 在地球坐标系...
最后,“经纬度计算距离经纬度计算距离工具(gpsCal)”是核心应用,它利用GIS的基本原理,通过输入两个地理位置的经纬度,计算它们之间的直线距离(即大圆距离)。对于户外活动爱好者、旅行者以及需要精确地理信息的...
通过经纬度算出两点间的距离,经过仔细对比及参照,相对精确度较高,请大家放心使用
记录下 java jts 求两个空间几何图形间最短距离,及最短距离间的两个坐标. 如:求一个点到一条直线的垂直坐标
sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离
计算两个经纬度距离.java
在压缩包文件"经纬度计算距离"中,可能包含MATLAB代码文件和GUI界面设计文件,用户可以直接运行该程序进行距离计算,而无需了解背后的数学公式或编程细节。 总的来说,利用经纬度计算距离是地理定位中的重要技术,...
java利用两点经纬度计算两点之间的距离java利用两点经纬度计算两点之间的距离java利用两点经纬度计算两点之间的距离java利用两点经纬度计算两点之间的距离java利用两点经纬度计算两点之间的距离
根据两点经纬度得到距离
地球不是一个完美的球体,而是一个椭球体,因此在计算距离时,我们需要考虑这种几何特性。WGS84椭球体的参数为:平均半径约为6378137米,扁平率为1/298.257223563。 计算两个经纬度点之间的距离通常使用的是...
根据经纬度距离和方位角计算新的经纬度,计算经纬度两点间距离
在这里,我们将深入探讨如何根据两点的经纬度信息计算距离和真北角。 首先,我们来理解经纬度的基本概念。地球被假想地分为360度的经线和纬线网络,经线是从本初子午线(0°经线)向东西两侧延伸的半圆,而纬线是与...