Java編程獲取經(jīng)緯度之間距離的方法
更新時間:2015年11月05日 14:44:38 作者:awj3584
這篇文章主要介紹了Java編程獲取經(jīng)緯度之間距離的方法,涉及Java數(shù)學運算的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了Java編程獲取經(jīng)緯度之間距離的方法。分享給大家供大家參考,具體如下:
public class GeoUtil { /** * 根據(jù)經(jīng)緯度和距離返回一個矩形范圍 * * @param lng * 經(jīng)度 * @param lat * 緯度 * @param distance * 距離(單位為米) * @return [lng1,lat1, lng2,lat2] 矩形的左下角(lng1,lat1)和右上角(lng2,lat2) */ public static double[] getRectangle(double lng, double lat, long distance) { float delta = 111000; if (lng != 0 && lat != 0) { double lng1 = lng - distance / Math.abs(Math.cos(Math.toRadians(lat)) * delta); double lng2 = lng + distance / Math.abs(Math.cos(Math.toRadians(lat)) * delta); double lat1 = lat - (distance / delta); double lat2 = lat + (distance / delta); return new double[] { lng1, lat1, lng2, lat2 }; } else { // TODO ZHCH 等于0時的計算公式 double lng1 = lng - distance / delta; double lng2 = lng + distance / delta; double lat1 = lat - (distance / delta); double lat2 = lat + (distance / delta); return new double[] { lng1, lat1, lng2, lat2 }; } } /** * 得到兩點間的距離 米 * * @param lat1 * @param lng1 * @param lat2 * @param lng2 * @return */ public static double getDistanceOfMeter(double lat1, double lng1, double lat2, double lng2) { 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) / 10; return s; } private static double rad(double d) { return d * Math.PI / 180.0; } /** * 地球半徑:6378.137KM */ private static double EARTH_RADIUS = 6378.137; }
希望本文所述對大家Java程序設(shè)計有所幫助。
您可能感興趣的文章:
- Java根據(jù)坐標經(jīng)緯度計算兩點距離5種方法及校驗經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦
- Java正則表達式實現(xiàn)經(jīng)緯度的合法性操作
- Java通過經(jīng)緯度坐標獲取兩個點之間的直線距離的示例
- javaweb實現(xiàn)百度GPS定位接口(經(jīng)緯度)
- java 根據(jù)經(jīng)緯度獲取地址實現(xiàn)代碼
- Java將GeoHash轉(zhuǎn)化為對應(yīng)的經(jīng)緯度坐標實例代碼
- 地址到經(jīng)緯度坐標轉(zhuǎn)化的JAVA代碼
- 基于Java的度分秒坐標轉(zhuǎn)純經(jīng)緯度坐標的漂亮國基地信息管理的方法
相關(guān)文章
解決Spring Boot 多模塊注入訪問不到j(luò)ar包中的Bean問題
這篇文章主要介紹了解決Spring Boot 多模塊注入訪問不到j(luò)ar包中的Bean問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09Java16 JDK安裝并設(shè)置環(huán)境變量的方法步驟
突然想起自己大學剛接觸java的時候,要下載JDK和配置環(huán)境變量,那時候我上網(wǎng)找了很多教學,本文就詳細的介紹一下Java16 JDK安裝并設(shè)置環(huán)境變量,感興趣的可以了解一下2021-09-09SpringBoot安全策略開發(fā)之集成數(shù)據(jù)傳輸加密
這篇文章主要介紹了SpringBoot集成數(shù)據(jù)傳輸加密,近期在對開發(fā)框架安全策略方面進行升級優(yōu)化,提供一些通用場景的解決方案,本文針對前后端數(shù)據(jù)傳輸加密進行簡單的分享2023-01-01