经纬度与距离米的计算
2017-09-20 00:00
246 查看
经纬度与距离米的计算:
地球半径R=6371km,2πR/360=111km,
也就是说经线上,纬度1°约为111km,
纬线上,赤道上,经度1°约为111km,
越往两级走,纬线圈越小,纬线圈半径为r=Rcos(α),α为当前纬线的纬度
纬线圈上经度1°对应的距离为:2πr/360=111cos(α)km
现在可以大致计算出radius距离对应该纬线上的经度到底增加多少,纬度增加了多少
△lat/radius=1°/111km
△lng/radius=1°/(111cos(α))km
eg:已知所有目标点的经纬度,根据中心中心点位置:lng,lat,找出范围在radius 内的所有点。
方案:
根据经纬度与距离的比值,计算出radius距离对应的经纬度△lng,△lat,
第一步,矩形过滤:选出在范围内的经纬度的地点:
lng-△lng<newlng<lng+△lng&&lat-△lat<newlat<lat+△lng
第二步,圆形过滤:
计算所有矩形内的党支部到中心点的距离,筛选出距离小于radius的点,已知两点经纬度,求距离。函数如下(网上找的):
地球半径R=6371km,2πR/360=111km,
也就是说经线上,纬度1°约为111km,
纬线上,赤道上,经度1°约为111km,
越往两级走,纬线圈越小,纬线圈半径为r=Rcos(α),α为当前纬线的纬度
纬线圈上经度1°对应的距离为:2πr/360=111cos(α)km
现在可以大致计算出radius距离对应该纬线上的经度到底增加多少,纬度增加了多少
△lat/radius=1°/111km
△lng/radius=1°/(111cos(α))km
eg:已知所有目标点的经纬度,根据中心中心点位置:lng,lat,找出范围在radius 内的所有点。
方案:
根据经纬度与距离的比值,计算出radius距离对应的经纬度△lng,△lat,
第一步,矩形过滤:选出在范围内的经纬度的地点:
lng-△lng<newlng<lng+△lng&&lat-△lat<newlat<lat+△lng
第二步,圆形过滤:
计算所有矩形内的党支部到中心点的距离,筛选出距离小于radius的点,已知两点经纬度,求距离。函数如下(网上找的):
public static double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) { // 维度 double lat1 = (Math.PI / 180) * latitude1; double lat2 = (Math.PI / 180) * latitude2; // 经度 double lon1 = (Math.PI / 180) * longitude1; double lon2 = (Math.PI / 180) * longitude2; // 地球半径 double R = 6371; // 两点间距离 km,如果想要米的话,结果*1000就可以了 double d = Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1)) * R; return d * 1000; }
相关文章推荐
- 计算两个经纬度坐标之间的距离
- php计算两个经纬度地点之间的距离(转)
- IOS根据两个经纬度计算相距距离
- PHP根据经纬度计算两点间实际距离
- JAVA计算地球上任意两点(经纬度)距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- Android获取经纬度、计算距离、方位角
- 两经纬度之间的距离计算
- 经纬度互换和计算距离
- python实现根据两点经纬度计算实际距离
- 经纬度距离计算
- 根据经纬度计算两地距离java实现
- [转]根据两点经纬度计算距离
- 根据经纬度计算两点之间的距离
- 在oracle中直接计算经纬度距离的方法
- java通过经纬度计算两个点的之间的距离的算法
- iOS根据2个经纬度计算距离
- 各地图gps坐标系统比较与转换以及经纬度距离计算MATLAB脚本
- 已知经纬度计算距离