IOS根据两个经纬度计算相距距离
//第一种苹果自带的
- CLLocation *orig=[[[CLLocation alloc] initWithLatitude:[mainDelegate.latitude_self doubleValue] longitude:[mainDelegate.longitude_self doubleValue]] autorelease];
- CLLocation* dist=[[[CLLocation alloc] initWithLatitude:[tmpNewsModel.latitude doubleValue] longitude:[tmpNewsModel.longitude doubleValue] ] autorelease];
- CLLocationDistance kilometers=[orig distanceFromLocation:dist]/1000;
- NSLog(@"距离:",kilometers);
//第二种,手动计算
- #pragma mark - calculate distance 根据2个经纬度计算距离
- #define PI 3.1415926
- +(double) LantitudeLongitudeDist:(double)lon1 other_Lat:(double)lat1 self_Lon:(double)lon2 self_Lat:(double)lat2{
- double er = 6378137; // 6378700.0f;
- //ave. radius = 6371.315 (someone said more accurate is 6366.707)
- //equatorial radius = 6378.388
- //nautical mile = 1.15078
- double radlat1 = PI*lat1/180.0f;
- double radlat2 = PI*lat2/180.0f;
- //now long.
- double radlong1 = PI*lon1/180.0f;
- double radlong2 = PI*lon2/180.0f;
- if( radlat1 < 0 ) radlat1 = PI/2 + fabs(radlat1);// south
- if( radlat1 > 0 ) radlat1 = PI/2 - fabs(radlat1);// north
- if( radlong1 < 0 ) radlong1 = PI*2 - fabs(radlong1);//west
- if( radlat2 < 0 ) radlat2 = PI/2 + fabs(radlat2);// south
- if( radlat2 > 0 ) radlat2 = PI/2 - fabs(radlat2);// north
- if( radlong2 < 0 ) radlong2 = PI*2 - fabs(radlong2);// west
- //spherical coordinates x=r*cos(ag)sin(at), y=r*sin(ag)*sin(at), z=r*cos(at)
- //zero ag is up so reverse lat
- double x1 = er * cos(radlong1) * sin(radlat1);
- double y1 = er * sin(radlong1) * sin(radlat1);
- double z1 = er * cos(radlat1);
- double x2 = er * cos(radlong2) * sin(radlat2);
- double y2 = er * sin(radlong2) * sin(radlat2);
- double z2 = er * cos(radlat2);
- double d = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
- //side, side, side, law of cosines and arccos
- double theta = acos((er*er+er*er-d*d)/(2*er*er));
- double dist = theta*er;
- return dist;
- }
IOS根据两个经纬度计算相距距离的更多相关文章
- iOS-根据两个经纬度计算相距距离
CLLocation *orig=[[[CLLocation alloc] initWithLatitude:[mainDelegate.latitude_self doubleValue] long ...
- js根据经纬度计算两点距离
js版-胡老师 google.maps.LatLng.prototype.distanceFrom = function(latlng) { var lat = [this.lat(), lat ...
- .NET资料之-根据两点经纬度计算直线距离
最近做东西碰到要根据两点经纬度计算之间的直线距离,就网上找了查了下资料.因为这类接触的比较少,就直接找现成的代码了,没怎么研究.代码如下,作为记录. private const double EART ...
- 【微信开发】微信小程序通过经纬度计算两地距离php代码实现
需求: 要求做个根据用户当前位置获取周围商家地址,并且按照由近到远排序, 方法一: 代码层实现 封装方法: /** * @desc 根据两点间的经纬度计算距离 * @param float $lat ...
- PHP 之根据两个经纬度计算距离
一.函数代码 /** * @param $lng1 * @param $lat1 * @param $lng2 * @param $lat2 * @return float */ function g ...
- iOS 根据经纬度计算与地理北极夹角
http://www.aiuxian.com/article/p-2767848.html #define toDeg(X) (X*180.0/M_PI) /** * @method 根据两点经纬度 ...
- Geohash-》通过经纬度计算两地距离的函数
/** * 根据起点坐标和终点坐标测距离 * @param [array] $from [起点坐标(经纬度),例如:array(118.012951,36.810024)] ...
- tp5 根据经纬度计算门店距离 可排序
$branchInfo=Db::name('Branch')->where('b_id','250')->find(); $map['p.cate_id']=array('eq',5); ...
- mySQL函数根据经纬度计算两点距离
DROP FUNCTION IF EXISTS func_calcDistance ; CREATE FUNCTION func_calcDistance( origLng ,), -- 目的地经度 ...
随机推荐
- 《HTTP权威指南》学习笔记——URL和资源
URL与资源 URL是互联网资源的标准化名称 1.浏览互联网资源 URL是浏览器寻找信息时所需的资源位置 URI是一类更通用的资源标识符,URL是它的子集. URI的两个子集:URL和URN URL提 ...
- MYSQL列中的数据以逗号隔开,如何查询
FROM `task_detatils` WHERE FIND_IN_SET( '1', responsible_user) 将含有1的responsible_user列数据全部搜索出来
- linux alias使用
安装一些软件 python redis mysql jdk,都需要添加环境变量,一个路径添加到了环境变量,就可以直接在linux控制台输入 xx命令. 否则不添加环境变量,使用xx就会提示找不到命令 ...
- chm只看到目录,看不到内容解决办法
鼠标左键->属性->解除锁定->搞定!
- HttpClient(二)-- 模拟浏览器抓取网页
一.设置请求头消息 User-Agent模拟浏览器 1.当使用第一节的代码 来 访问推酷的时候,会返回给我们如下信息: 网页内容:<!DOCTYPE html> <html> ...
- osgearth缓存数据命令
新建一个.bat文件 中国地区 osgearth_package.exe ReadyMap.earth --tms ReadyMap.earth --out D:\APICenter\EarthDat ...
- [SublimeText] 如何创建工程
Sublime Text 可以很方便地管理多个工程.使用Sublime Text的Projects,可以将不同根目录的文件组织起来成为一个工程,而不用将所有的文件都放到一个根目录下面. 1. 创建工程 ...
- js元素闪动效果
<img src="http://yjy.allbring.com/UpLoadFiles/head/p1_20140326104945_17-10164142709.jpg" ...
- 云计算设计模式(二十三)——Throttling节流模式
云计算设计模式(二十三)——Throttling节流模式 控制由应用程序使用,一个单独的租户或整个服务的一个实例的资源的消耗.这种模式可以允许系统继续运行并满足服务水平协议,即使当增加需求的资源放置一 ...
- Linux(Ubuntu)下如何解压 .zip 文件
安装解压缩软件 使用如下命令安装: sudo apt-get install p7zip-full 7zip,估计会比较熟悉. p7zip,是什么? 听说是 7zip 的 shell 封装. 解压 使 ...