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根据经纬度算距离相关推荐
- 根据经纬度算距离,返回结果单位是公里,先纬度,后经度
/*** 根据经纬度算距离,返回结果单位是公里,先纬度,后经度* @param $lat1* @param $lng1* @param $lat2* @param $lng2* @return flo ...
- 经纬度算距离方法(续)
前言 上篇文章整理了2种经纬度转距离的方法:经纬度转平面坐标xy并算距离代码 一种是通过半正矢公式,将地球近似为一个规则球体. 另一种是先转成平面坐标再计算距离,转成平面坐标时考虑投影坐标系参数. 这 ...
- 米转经纬度;经纬度算距离
//米转地理距离度 private static double meterToDegree(double len){double ra = Math.pow((Math.pow(len, -1)) * ...
- 2021-07-18 用经纬度算距离
Jkoooo 粉丝: 3702 文章: 9 关注 突然对于经纬度与距离感兴趣了(公选课讲到东风系列弹道导弹射程),就想了解一下如何通过经纬度来计算距离.百度了一下,觉得不满意就自己尝试做一下,都是些基 ...
- 知道两点经纬度算距离
#define PI 3.14159265358979323 //3.14159265353846 //当计算两点间距离时,经纬度差小于下面的门限值用地球半径,大于下面门限时用大圆算 # ...
- oracle 经纬度算距离,根据经纬度诀别用java和Oracle存储过程计算两点距离
根据经纬度分别用java和Oracle存储过程计算两点距离 create or replace procedure SP_GET_DISTANCE (cx in number,cy in number ...
- php经纬度换算距离,PHP根据经纬度坐标计算距离
PHP根据经纬度坐标计算距离 在有些应用中需要用到计算距离的功能,例如附近的商家.离我最近等功能. W为纬度对应的弧度,J为经度对应的弧度,如上图所示 下面代码 lat是纬度 lng是经度 看类代 ...
- android double值排序,android根据Double类型数据经纬度算出距离再根据距离实现排序功能...
前言 项目中用到全国的加油站数据加载 并根据经纬度算出距离 然后根据距离从小到大排序 主要是数据类型是Double 这里必须对数据进行封装 实现也不难 这里讲一下自己的实现方法和实现思路 效果图 先来 ...
- 如何使用sql语句算两经纬度的距离
本文章转载于https://segmentfault.com/a/1190000013922206 经纬度计算距离公式 对以上公式描述 1.Lung1 Lat1表示A点经纬度, Lung2 Lat2表 ...
- 经纬度转平面坐标xy并算距离代码
经纬度算直线距离通常有2种方法,比较常用的是第一种. 方法一:半正矢公式 第一种方法是通过半正矢公式推导 这种方法的优点是公式简单,计算快,缺点是地球并不是标准的球体,存在一定的误差 public d ...
最新文章
- 神经网络版员工离职预测
- 怎么发表论文能保证被收录
- vb.net 与 c# 的switch ... case ...的一个重要区别
- 【译】前端框架技术选型 React vs. Vue (vs. Angular)
- linux下如何查看某个容器的详细信息?
- C# 图像编程 (1) 准备工作; 你好,空姐; 为空姐照片添加特效
- gnome2 卷起_推荐4个非常漂亮的Gnome 3.2 主题[PPA]
- Mac 终端失效如何解救
- python word转pdf图片格式_Python将word转换为PDF格式文件(包括批处理转换),Word,Pdf,包含,批量...
- MyEclipse详细使用教程
- python语言实例-Python代码样例列表
- Java常用日志框架介绍(转载)
- AutoCAD Civil 3D创建点文件描述码(点特征码)集控制展点样式与特性
- 头哥实践教学平台 CC++程序设计(计算机程序设计)基本输入输出 第2关:整数四则运算表达式的输出格式控制
- iOS-记一些官网地址
- HDFS的常用操作--hdfs下的文件操作常用命令总结
- 恩墨学院举办OCM联盟活动BDA大数据联盟春季活动
- java原始人生存繁殖的游戏,一款原始人生存繁殖的游戏
- 头条权重是什么?头条权重怎么查询?
- Alcohol 120%刻录教程:刻录镜像文件