//第一种苹果自带的

  1. CLLocation *orig=[[[CLLocation alloc] initWithLatitude:[mainDelegate.latitude_self doubleValue]  longitude:[mainDelegate.longitude_self doubleValue]] autorelease];
  2. CLLocation* dist=[[[CLLocation alloc] initWithLatitude:[tmpNewsModel.latitude doubleValue] longitude:[tmpNewsModel.longitude doubleValue] ] autorelease];
  3. CLLocationDistance kilometers=[orig distanceFromLocation:dist]/1000;
  4. NSLog(@"距离:",kilometers);

//第二种,手动计算

  1. #pragma mark - calculate distance  根据2个经纬度计算距离
  2. #define PI 3.1415926
  3. +(double) LantitudeLongitudeDist:(double)lon1 other_Lat:(double)lat1 self_Lon:(double)lon2 self_Lat:(double)lat2{
  4. double er = 6378137; // 6378700.0f;
  5. //ave. radius = 6371.315 (someone said more accurate is 6366.707)
  6. //equatorial radius = 6378.388
  7. //nautical mile = 1.15078
  8. double radlat1 = PI*lat1/180.0f;
  9. double radlat2 = PI*lat2/180.0f;
  10. //now long.
  11. double radlong1 = PI*lon1/180.0f;
  12. double radlong2 = PI*lon2/180.0f;
  13. if( radlat1 < 0 ) radlat1 = PI/2 + fabs(radlat1);// south
  14. if( radlat1 > 0 ) radlat1 = PI/2 - fabs(radlat1);// north
  15. if( radlong1 < 0 ) radlong1 = PI*2 - fabs(radlong1);//west
  16. if( radlat2 < 0 ) radlat2 = PI/2 + fabs(radlat2);// south
  17. if( radlat2 > 0 ) radlat2 = PI/2 - fabs(radlat2);// north
  18. if( radlong2 < 0 ) radlong2 = PI*2 - fabs(radlong2);// west
  19. //spherical coordinates x=r*cos(ag)sin(at), y=r*sin(ag)*sin(at), z=r*cos(at)
  20. //zero ag is up so reverse lat
  21. double x1 = er * cos(radlong1) * sin(radlat1);
  22. double y1 = er * sin(radlong1) * sin(radlat1);
  23. double z1 = er * cos(radlat1);
  24. double x2 = er * cos(radlong2) * sin(radlat2);
  25. double y2 = er * sin(radlong2) * sin(radlat2);
  26. double z2 = er * cos(radlat2);
  27. double d = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
  28. //side, side, side, law of cosines and arccos
  29. double theta = acos((er*er+er*er-d*d)/(2*er*er));
  30. double dist  = theta*er;
  31. return dist;
  32. }

IOS根据两个经纬度计算相距距离的更多相关文章

  1. iOS-根据两个经纬度计算相距距离

    CLLocation *orig=[[[CLLocation alloc] initWithLatitude:[mainDelegate.latitude_self doubleValue] long ...

  2. js根据经纬度计算两点距离

    js版-胡老师 google.maps.LatLng.prototype.distanceFrom = function(latlng) {    var lat = [this.lat(), lat ...

  3. .NET资料之-根据两点经纬度计算直线距离

    最近做东西碰到要根据两点经纬度计算之间的直线距离,就网上找了查了下资料.因为这类接触的比较少,就直接找现成的代码了,没怎么研究.代码如下,作为记录. private const double EART ...

  4. 【微信开发】微信小程序通过经纬度计算两地距离php代码实现

    需求: 要求做个根据用户当前位置获取周围商家地址,并且按照由近到远排序, 方法一: 代码层实现 封装方法: /** * @desc 根据两点间的经纬度计算距离 * @param float $lat ...

  5. PHP 之根据两个经纬度计算距离

    一.函数代码 /** * @param $lng1 * @param $lat1 * @param $lng2 * @param $lat2 * @return float */ function g ...

  6. iOS 根据经纬度计算与地理北极夹角

    http://www.aiuxian.com/article/p-2767848.html #define toDeg(X) (X*180.0/M_PI) /**  * @method 根据两点经纬度 ...

  7. Geohash-》通过经纬度计算两地距离的函数

    /**      * 根据起点坐标和终点坐标测距离      * @param  [array]   $from  [起点坐标(经纬度),例如:array(118.012951,36.810024)] ...

  8. tp5 根据经纬度计算门店距离 可排序

    $branchInfo=Db::name('Branch')->where('b_id','250')->find(); $map['p.cate_id']=array('eq',5); ...

  9. mySQL函数根据经纬度计算两点距离

    DROP FUNCTION IF EXISTS func_calcDistance ; CREATE FUNCTION func_calcDistance( origLng ,), -- 目的地经度 ...

随机推荐

  1. Hibernate的七种映射关系之七种关联映射(二)

    继续上篇博客 七.Hibernate双向一对多关联映射:让多的一端来维护关系. 主要是解决一对多单向关联的缺陷,而不是需求驱动的. 1.在Student.java实体类里添加Classes引用.pri ...

  2. Android Material Design控件学习(二)——NavigationView的学习和使用

    前言 上次我们学习了TabLayout的用法,今天我们继续学习MaterialDesign(简称MD)控件--NavigationView. 正如其名,NavigationView,导航View.一般 ...

  3. vue-router 2 跳转失败原因

    axios.post('/internal/user/login_from_mobile ',{ mobile: this.logPrefix+this.formInline1.mobile, pas ...

  4. Win7 共享打印机 “错误:共享无法保存设置”

    原因:windows的后台防火墙服务进程[Windows Firewall{服务描述}.MpsSvc{服务名字}] 关闭了.services.smc 关闭 解决:重启服务 关闭防火墙的功能,通过控制面 ...

  5. mysql add foreign key 不成功

    今天修改了mysql数据表的结构,然后添加外键index一直不成功: 查到问题在于,被外键的表,引擎不是Innodb,而是MyISAM. 修改好,以后保存报错: 解决办法,将数据库表里的数据全部删除, ...

  6. BarTender数据中的转义符序列知识讲解

    Datamatrix是二维码的一个成员,广泛用于商品的防伪.统筹标识.如果为 Data Matrix 条形码指定的“符号类型”不是 ECC 200,则将会启用“字符集”选项.Data Matrix 也 ...

  7. mysql中使用show variables同时查询多个参数值?show variables的使用?

    需求描述: 今天在查mysq关于连接数的问题,想要通过一个show variables命令同时查出来多个值.在此记录下. 操作过程: 1.通过show variables语句的like可以匹配多个值或 ...

  8. 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?【转载】

    转载自:http://www.cnblogs.com/dancefire/archive/2013/01/02/why-notifyDataSetChanged-does-not-work.html ...

  9. 8 -- 深入使用Spring -- 3...1 Resource实现类

    8.3.1 Resource实现类 Resource接口是Spring资源访问的接口,具体的资源访问由该接口的实现类完成. Spring提供的Resource接口的实现类: ⊙ UrlResource ...

  10. Python中的类(中)

    上一篇介绍了Python中类相关的一些基本点,本文看看Python中类的继承和__slots__属性. 继承 在Python中,同时支持单继承与多继承,一般语法如下: class SubClassNa ...