java-经纬度有关的计算(半径内的经纬度范围和两点间距离)
2017-04-17 18:03
561 查看
/** * 计算地球上任意两点(经纬度)距离 * * @param long1 第一点经度 * @param lat1 第一点纬度 * @param long2 第二点经度 * @param lat2 第二点纬度 * @return 返回距离 单位:米 */ public static double distanceByLongNLat(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 * (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}; }
相关文章推荐
- 根据经纬度和半径计算经纬度范围,根据两点经纬度计算距离
- JAVA 计算地球上任意两点(经纬度)距离
- JAVA 计算地球上任意两点(经纬度)距离
- JAVA 计算地球上任意两点(经纬度)距离
- java根据经纬度坐标计算两点的距离算法
- JAVA 计算地球上任意两点(经纬度)距离
- 根据两点经纬度计算精确距离,结果和百度地图测距一样——java实现
- JAVA 计算地球上任意两点(经纬度)距离
- 根据两点经纬度计算距离-mysql方式和java方式
- 【JAVA】两点经纬度直线距离的计算
- 根据经纬度分别用java和Oracle存储过程计算两点距离
- 计算 GPS 经纬度 两点间 距离 JAVA 代码
- Java根据两点的经纬度来计算之间的距离
- JAVA根据经纬度计算两点距离
- java使用geocoder,获取经纬度并计算没两点间距离
- JAVA 计算地球上任意两点(经纬度)距离
- 根据两点经纬度计算距离和角度——java实现
- 【JAVA】两点经纬度直线距离的计算
- JAVA 计算地球上任意两点(经纬度)距离
- java经纬度两点距离计算方法