给定经纬度计算距离_根据经纬度计算两地间的距离
import java.util.HashMap;
import java.util.Map;
public class MapDistance {
private static double EARTH_RADIUS = 6378.137;
private static double rad(double d) {
return d * Math.PI / 180.0;
}
/**
* 根据两个位置的经纬度,来计算两地的距离(单位为KM)
* 参数为String类型
* @param lat1Str 用户经度
* @param lng1Str 用户纬度
* @param lat2Str 商家经度
* @param lng2Str 商家纬度
* @return
*/
public static String 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 patm = 2;
double radLat1 = rad(lat1);
double radLat2 = rad(lat2);
double difference = radLat1 - radLat2;
double mdifference = rad(lng1) - rad(lng2);
double distance = patm * Math.asin(Math.sqrt(Math.pow(Math.sin(difference / patm), patm)
+ Math.cos(radLat1) * Math.cos(radLat2)
* Math.pow(Math.sin(mdifference / patm), patm)));
distance = distance * EARTH_RADIUS;
String distanceStr = String.valueOf(distance);
return distanceStr;
}
/**
* 获取当前用户一定距离以内的经纬度值
* 单位米 return minLat
* 最小经度 minLng
* 最小纬度 maxLat
* 最大经度 maxLng
* 最大纬度 minLat
*/
public static Map getAround(String latStr, String lngStr, String raidus) {
Map map = new HashMap();
Double latitude = Double.parseDouble(latStr);// 传值给经度
Double longitude = Double.parseDouble(lngStr);// 传值给纬度
Double degree = (24901 * 1609) / 360.0; // 获取每度
double raidusMile = Double.parseDouble(raidus);
Double mpdLng = Double.parseDouble((degree * Math.cos(latitude * (Math.PI / 180))+"").replace("-", ""));
Double dpmLng = 1 / mpdLng;
Double radiusLng = dpmLng * raidusMile;
//获取最小经度
Double minLat = longitude - radiusLng;
// 获取最大经度
Double maxLat = longitude + radiusLng;
Double dpmLat = 1 / degree;
Double radiusLat = dpmLat * raidusMile;
// 获取最小纬度
Double minLng = latitude - radiusLat;
// 获取最大纬度
Double maxLng = latitude + radiusLat;
map.put("minLat", minLat+"");
map.put("maxLat", maxLat+"");
map.put("minLng", minLng+"");
map.put("maxLng", maxLng+"");
return map;
}
public static void main(String[] args) {
//济南国际会展中心经纬度:117.11811 36.68484
//趵突泉:117.00999000000002 36.66123
System.out.println(getDistance("116.97265","36.694514","116.597805","36.738024"));
System.out.println(getAround("117.11811", "36.68484", "13000"));
//117.01028712333508(Double), 117.22593287666493(Double),
//36.44829619896034(Double), 36.92138380103966(Double)
}
}
给定经纬度计算距离_根据经纬度计算两地间的距离相关推荐
- java获取一定距离以内的经纬度值_java 根据经纬度计算两地间的距离
现在网站上都流行贴出地理坐标位置,可以看出精度纬度,如果再结合GPS, 就可以定位出用户所在地的经纬度,自然可以计算出大概距离,下面是一段小代码,根据经纬度坐标直接计算出两地间的距离package c ...
- 在C++中计算经纬度(附34个城市两两间的距离计算结果)
文章目录 计算说明 C++实现代码 计算结果 计算说明 本文使用C++根据输出两个城市的经纬度计算两地间的距离. 几点说明: 经度为E,如果开头为W则取负值: 纬度为N,如果开头为S则取负值: 为了避 ...
- 给定经纬度计算距离_通过经纬度坐标计算距离的方法(经纬度距离计算)ZZ
通过经纬度坐标计算距离的方法(经纬度距离计算) 最近在网上搜索"通过经纬度坐标计算距离的方法",发现网上大部分都是如下的代码: #define PI 3.14159265 stat ...
- 给定经纬度计算距离_根据经纬度计算两点间距离JAVA版
本文最后更新于2019-08-31,已超过 1年没有更新,如果文章内容.图片或者下载资源失效,请留言反馈,我会及时处理,谢谢! 温馨提示:本文共2518个字,读完预计7分钟. import java. ...
- 给定经纬度计算距离_根据经纬度计算地球上两点之间的距离js实现代码
利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面 ...
- matlab 韩明距离_使用Matlab计算各种距离Distance
计算距离的需求有两种: 一种是给定一个特征集合X,然后计算Pairwise距离矩阵,那么可使用D=pdist(X,distance)的方式: 另一种是给定两个对应的特征集合X和Y,然后计算X与Y对应的 ...
- python 文本相似度计算函数_四种计算文本相似度的方法对比
作者:Yves Peirsman 编译:Bing 编者按:本文作者为Yves Peirsman,是NLP领域的专家.在这篇博文中,作者比较了各种计算句子相似度的方法,并了解它们是如何操作的.词嵌入(w ...
- python 流式计算框架_流式计算的三种框架:Storm、Spark和Flink
我们知道,大数据的计算模式主要分为批量计算(batch computing).流式计算(stream computing).交互计算(interactive computing).图计算(graph ...
- 太阳高度角计算题_太阳高度角的计算问题
太阳高度角的计算问题 (2009-10-07 20:30:33) 标签: 杂谈 太阳高度角的计算问题是高一地理第一单元重点内容之一 重要程度仅次于日期时间计算问题 应 gst 的要求,我来讲解一下这个 ...
最新文章
- Rhel6服务器时间任务浅谈
- 80后应该面对的问题
- 连续整数的和(51Nod-1138)
- springboot-mybatis-多数据源
- [CodeForces - 276A] Lunch Rush
- Python多线程学习资料1
- 五子棋AI算法(一)
- 如何将已加好的脚注或尾注转换成中括号“[]”格式
- Effective+Java+中文版
- 计算机二级电子表格使用技巧36种,Excel表格中最经典的36个小技巧,全在这儿了...
- iOS11新增的Files文件管理器应用
- php 表情,PHP处理emoji表情
- SpringCloud Tencent 全套解决方案
- sdiv和srem问题解决
- infor接口调用,okhttp不同版本使用
- 【Spring框架一】——Spring框架简介
- php 解析pathinfo 类
- 为什么会有高防CDN的出现?
- 这本C语言入门书被翻译成五种语言出版,如今迎来了中文版第17版
- 利用电影贴吧引流轻松变现,超适合新手