Object-c 根据经度纬度计算两点间的距离
2015-11-11 15:46
513 查看
m
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;
}
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;
}
相关文章推荐
- 2015 Objective-C 新特性
- Objective-C Doxyfile
- Json转map和List<Map<String,Object>>
- latch: row cache objects:dc_rollback_segments
- Objective-C 程序设计 第十章
- objective-c基础教程——学习小结
- Objective-C 中类属性(修饰)
- 第三章:ObjectC循环
- javascript中object与{}的区别
- views_object / views_db_object
- 四、ObjectARX 修改对象的属性
- 关于SharePoint 的Client object model该何时load和execut query的一点自己的看法
- Object-C中的内存管理小记
- Java objectOutputStream的用法
- Downcast from'[NSObject:AnyObject]?'to'Dictionary<NSObject,AnyObject>'only unwraps
- Linq to object
- iOS常见错误2-CoreData: Cannot load NSManagedObjectModel.nil is an illegal URL parameter
- [Object-C]微博登陆遇见的坑
- BOM(Browser Object Model) 浏览器对象模型
- kobject结构分析