计算地球上两点的直线距离
来源:互联网 发布:双色球怎么算法 编辑:程序博客网 时间:2024/05/01 21:53
因为工作涉及到一些地图上点的运算,所以留做以后查询时使用
public int getDistance(GeoPoint p1,ScenicSpot p2){
int distance = 0 ;
int latitudeDistance = (int)Math.abs((p1.getLatitudeE6() - Double.valueOf(p2.getLati())*e6) *
Conf.LATITUDE_UNIT);
int longitudeDistance = (int)Math.abs((p1.getLongitudeE6() - Double.valueOf(p2.getLongi())*e6) *
Conf.LONGITUDE_UNIT*Math.cos(p1.getLatitudeE6()));
distance = (int)Math.sqrt(latitudeDistance*latitudeDistance
+ longitudeDistance*longitudeDistance);
p2.setDistance(Integer.toString(distance));
return distance;
}
其中GeoPoint是百度地图API里面的一个类,返回的单位是微度,祥见百度百科(PS.关于微度的百度百科的词条也是我写的),ScenicSpot是我们自己封装的一个类,由Google提供的坐标得出的经纬度,单位为度。
而后需要将某一系列的点按到目标点的远近排序,所以做了以下的一个算法
private GeoPoint[] sort(ArrayList<GeoPoint> GP,int i){
if(GP.size()>i){
init(i);
}else{
init(GP.size());
}
for(int j=0; j<GP.size(); j++){
nowPoint = GP.get(j);
dis = getDistance();
for(int k=0; k<arrInt.length; k++){
if(dis<arrInt[k]){
for(int m=(arrInt.length-1); m<k; m--){
arrInt[m] = arrInt[m-1];
arrGeoP[m] = arrGeoP[m-1];
}
arrInt[k] = dis;
arrGeoP[k] = nowPoint;
break;
}
}
}
return arrGeoP;
}
- 计算地球上两点的直线距离
- 计算地球上两点的直线距离
- Android 计算地球上两点的距离
- 计算地球上两点的距离
- 计算地球上两点间的距离
- Delphi 根据经纬度计算地球上两点之间的距离
- 计算地球上两点间的距离算法代码
- 地球上两点之间的距离计算(java)
- Delphi 根据经纬度计算地球上两点之间的距离
- 计算地球上任意两点(经纬度)距离
- 火星坐标与地球坐标的转换,以及地球上两点之间的距离计算
- 根据地球上任意两点的经纬度计算两点间的距离
- 根据地球上任意两点的经纬度计算两点间的距离
- 根据地球上任意两点的经纬度计算两点间的距离
- 【JAVA】两点经纬度直线距离的计算
- 地球经纬度计算两点距离
- JAVA 计算地球上任意两点(经纬度)距离
- JAVA 计算地球上任意两点(经纬度)距离
- 取消win7自动登录
- 基于Android的音乐播放器项目
- sagalinux学习之/boot目录
- 学习Jsoup(一)
- WPF应用程序性能提高
- 计算地球上两点的直线距离
- Windows XP自动登陆
- 运用Maven3.0.3对项目进行管理(1)
- 删除容器的元素时应谨慎
- 按行输入的实现方法
- iframe标签的内部关闭存在一个问题(未知原因)
- 自订标签库--TagSupport详解
- RAMOS windows7 制作教程(测试成功,看原文)
- MD /MDD /ML /MT /MTD的简单介绍