Object-c 根据经度纬度计算两点间的距离
2011-12-13 21:11
381 查看
Object-c 根据经度纬度计算两点间的距离
通过简单的数学方法就能轻松地根据经度纬度计算两点间的距离(由于在项目中用到了,所以记录了下来)以下是实现方法:
/**
* 获取两点经纬度地址的方法
返回的单位是公里
*
*
@param latA A点的纬度
*
@param lngA A点的经度
*
@param latB B点的纬度
*
@param lngB B点的经度
*
*
@return A,B连点的距离
*/
+(double) getDistanceLatA:(double)latA
lngA:(double)lngA
latB:(double)latB
lngB:(double)lngB{
double radLat1 = [self
rad:latA ];
double radLat2 = [self
rad:latB ];
double a = radLat1 - radLat2;
double b = [self
rad:lngA] - [self
rad:lngB];
double s = 2 *
sin(sqrt(pow(sin(a /
2), 2)
+
cos(radLat1) * cos(radLat2)
*
pow(sin(b /
2), 2)));
s = s *
EARTH_RADIUS;
s = s*1000;
double c = (round((s))/10)*10 /1000.0;
return c;
}
通过简单的数学方法就能轻松地根据经度纬度计算两点间的距离(由于在项目中用到了,所以记录了下来)以下是实现方法:
/**
* 获取两点经纬度地址的方法
返回的单位是公里
*
*
@param latA A点的纬度
*
@param lngA A点的经度
*
@param latB B点的纬度
*
@param lngB B点的经度
*
*
@return A,B连点的距离
*/
+(double) getDistanceLatA:(double)latA
lngA:(double)lngA
latB:(double)latB
lngB:(double)lngB{
double radLat1 = [self
rad:latA ];
double radLat2 = [self
rad:latB ];
double a = radLat1 - radLat2;
double b = [self
rad:lngA] - [self
rad:lngB];
double s = 2 *
sin(sqrt(pow(sin(a /
2), 2)
+
cos(radLat1) * cos(radLat2)
*
pow(sin(b /
2), 2)));
s = s *
EARTH_RADIUS;
s = s*1000;
double c = (round((s))/10)*10 /1000.0;
return c;
}
相关文章推荐
- Object-c 根据经度纬度计算两点间的距离
- C# 根据经度纬度计算两点的距离
- C# 根据经度纬度计算两点的距离
- C# 根据经度纬度计算两点的距离
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
- 根据地球上两个地点的经度和纬度,如何获得这两点的距离?
- 已知两点的经度、纬度,计算两点的距离
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
- 已知两点的经度和纬度,计算两点间的距离(php,javascript)
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
- SQL语句根据经度纬度求出两点间的距离排序
- 根据2个经纬度点,计算这2个经纬度点之间的距离(通过经度纬度得到距离)
- 根据地球上任意两点的经纬度计算两点间的距离
- 根据经纬度和半径计算经纬度范围,根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 怎么根据经维度计算两点之间的距离,怎么根据经纬度与距离计算目标地点的经纬度
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据经纬度分别用java和Oracle存储过程计算两点距离
- (转)根据两点经纬度计算距离