大神们帮忙看看我这配置能玩绝地求生大神灵敏度吗

39070人阅读
Objective-C(12)
IOS7 WGS-84转GCJ-02(火星坐标)
CLLocationManager类可以实时的获得我们位置的经纬度,并且可以通过经纬度在MapView上定位:
//创建CLLocationManager对象
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
//设置委托对象为自己
[locationManager setDelegate:self];
//要求CLLocationManager对象返回全部结果
[locationManager setDistanceFilter:kCLDistanceFilterNone];
//要求CLLocationManager对象的返回结果尽可能的精准
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
//要求CLLocationManager对象开始工作,定位设备位置
[locationManager startUpdatingLocation];
通过下面的CLLocationManager的委托方法可以得到或者更新locationManager的经纬度,并且显示到MapView上
//CLLocationManager委托方法
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
//得到newLocation
CLLocation *loc = [locations objectAtIndex:0];
但是对于国内地图而言,使用LocationManager定位所获得经纬度,是有一段较大距离的偏移的。
这是为什么呢??这几天一直在查这方面的资料,各种google、baidu论坛里给出的答案也各有不同:
wifi 热点 基站 gps等等所导致的都有,最后查找还是找到了问题所在,原来国内地图使用的坐标系统是GCJ-02而ios sdk中所用到的是国际标准的坐标系统WGS-84。
因为国内使用的是加密后的坐标系GCJ-02就是网络上叫的火星坐标。
locationManager就是因为得到的是火星坐标偏移后的经纬度,所以导致在MapView上有很大的偏差,而在MKMapView上通过定位自己位置所获得的经纬度有是准确,因为apple已经对国内地图做了偏移优化。
1、那么临时的解决方法:想要获得自己准确的经纬度可以直接通过MKMapView中对自身定位来获得:
//定义一个MKMapView 并且调用setShowUserLocation:YES来获得自身的位置
[self.mapView setShowsUserLocation:YES];
//如果不想要显示这个MKMapView就将其隐藏
[self.mapView setHidden:YES];
然后通过MKMapView的委托方法来获取准确的经纬度:
-(void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation{
CLLocationCoordinate2D coord = [userLocation coordinate];
NSLog(@&经度:%f,纬度:%f&,coord.latitude,coord.longitude);
这个方法虽然简单,也可以实时的获取自己的位置而且基本上都是准确的位置,但是也就无法使用locationManager中的一些功能了。
那么有没有更好的解方法可以让我们在火星坐标上使用locationManager来获得准确的位置呢? 看了几篇博客给出的答案是相似的,就是调用apple的私有模块类中得方法来对经纬度做一个偏移修正:
上面两篇文章中都提到了使用apple的私有模块MKLocationManager来修正偏移,不过遗憾的是如果使用了私有模块会导致AppStore审核失败,但是幸运的是这种方式只能在IOS5以前的系统中使用。。。。。。至少今天我们不用担心该不该使用这个方式。
接下来就是正题了:最后我找到了一份android的火星坐标转换的算法,然后自己改写成了以下将WGS-84坐标系统转为GCJ-02的Objective-C代码,这样就能方便的使用CLLocationManager这个类了。
2、将WGS-84转为GCJ-02(火星坐标):
新建一个类“WGS84TOGCJ02”,在.h头文件中定义:
Copyright (c) 2013年 swinglife. All rights reserved.
#import &Foundation/Foundation.h&
#import &MapKit/MapKit.h&
@interface WGS84TOGCJ02 : NSObject
//判断是否已经超出中国范围
+(BOOL)isLocationOutOfChina:(CLLocationCoordinate2D)
//转GCJ-02
+(CLLocationCoordinate2D)transformFromWGSToGCJ:(CLLocationCoordinate2D)wgsL
@end在WGS84TOGCJ02.m文件中:
Copyright (c) 2013年 swinglife. All rights reserved.
#import &WGS84TOGCJ02.h&
const double a = ;
const double ee = 0.;
const double pi = 3.79324;
@implementation WGS84TOGCJ02
+(CLLocationCoordinate2D)transformFromWGSToGCJ:(CLLocationCoordinate2D)wgsLoc
CLLocationCoordinate2D adjustL
if([self isLocationOutOfChina:wgsLoc]){
adjustLoc = wgsL
double adjustLat = [self transformLatWithX:wgsLoc.longitude - 105.0 withY:wgsLoc.latitude - 35.0];
double adjustLon = [self transformLonWithX:wgsLoc.longitude - 105.0 withY:wgsLoc.latitude - 35.0];
double radLat = wgsLoc.latitude / 180.0 *
double magic = sin(radLat);
magic = 1 - ee * magic *
double sqrtMagic = sqrt(magic);
adjustLat = (adjustLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
adjustLon = (adjustLon * 180.0) / (a / sqrtMagic * cos(radLat) * pi);
adjustLoc.latitude = wgsLoc.latitude + adjustL
adjustLoc.longitude = wgsLoc.longitude + adjustL
return adjustL
//判断是不是在中国
+(BOOL)isLocationOutOfChina:(CLLocationCoordinate2D)location
if (location.longitude & 72.004 || location.longitude & 137.8347 || location.latitude & 0.8293 || location.latitude & 55.8271)
return YES;
return NO;
+(double)transformLatWithX:(double)x withY:(double)y
double lat = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * sqrt(abs(x));
lat += (20.0 * sin(6.0 * x * pi) + 20.0 *sin(2.0 * x * pi)) * 2.0 / 3.0;
lat += (20.0 * sin(y * pi) + 40.0 * sin(y / 3.0 * pi)) * 2.0 / 3.0;
lat += (160.0 * sin(y / 12.0 * pi) + 320 * sin(y * pi / 30.0)) * 2.0 / 3.0;
+(double)transformLonWithX:(double)x withY:(double)y
double lon = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * sqrt(abs(x));
lon += (20.0 * sin(6.0 * x * pi) + 20.0 * sin(2.0 * x * pi)) * 2.0 / 3.0;
lon += (20.0 * sin(x * pi) + 40.0 * sin(x / 3.0 * pi)) * 2.0 / 3.0;
lon += (150.0 * sin(x / 12.0 * pi) + 300.0 * sin(x / 30.0 * pi)) * 2.0 / 3.0;
最后我们通过判断isLocationOutOfChina 然后调用transformLatWithX方法就能获取转换后的 CLLocationCoordinate2D结构类型
//CLLocationManager委托方法
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
//得到newLocation
CLLocation *loc = [locations objectAtIndex:0];
//判断是不是属于国内范围
if (![WGS84TOGCJ02 isLocationOutOfChina:[loc coordinate]]) {
//转换后的coord
CLLocationCoordinate2D coord = [WGS84TOGCJ02 transformFromWGSToGCJ:[loc coordinate]];
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:981565次
积分:4583
积分:4583
排名:第5454名
原创:40篇
转载:17篇
评论:207条
(1)(1)(1)(1)(1)(1)(3)(3)(9)(3)(4)(4)(1)(1)(1)(5)(4)(3)(3)(1)(7)地图坐标体系介绍及其互转工具 - 简书
地图坐标体系介绍及其互转工具
今天在用leaflet的时候发现,手头数据的经纬度坐标是基于百度地图体系的,在leaflet中用openstreetmap会有很大的偏移,解决了偏移问题,顺便了解了一下不同地图使用的坐标体系,整理如下:
先说一说现有的坐标体系:
WGS-84/地球坐标
使用者:谷歌(除去中国部分),OpenStreetMap原始坐标体系。很可惜,在中国,任何一个地图产品都不允许使用GPS坐标。保密。
GCJ-02/火星坐标/国测局坐标
使用者:谷歌(中国地图部分),腾讯,高德在中国,必须至少使用GCJ-02的坐标体系。GCJ-02也是国内最广泛使用的坐标体系。
BD-09/百度坐标
使用者:百度百度公司独有的坐标系
下面介绍几个坐标转换的工具:
: 基于Node.js
: 基于Python版本
: 基于JavaScript的野生版本
看到定位点终于回到了它原本的位置,真是一身轻松呢~
【参考资料】OpenStreetMap数据下的空间数据更新方法--《测绘通报》2016年06期
OpenStreetMap数据下的空间数据更新方法
【摘要】:针对利用专业测绘数据对空间数据库更新中存在的现势性问题,提出了利用OpenStreetMaps数据对空间数据库进行更新的方法。阐述了基于OpenStreetMap数据的空间数据更新方法的关键理论与技术,特别是OpenStreetMap数据与专业测绘数据的变化要素检测算法:基于格网的匹配检测算法和基于几何量算的变化要素检测。在此基础上,利用珠海市的专业测绘数据与相应区域的OpenStreetMap数据作为试验数据,编程实现了基于OpenStreetMap的空间数据更新。
【作者单位】:
【关键词】:
【基金】:
【分类号】:P208;P209【正文快照】:
随着网络技术与GIS技术的快速发展,用户对地理数据的现势性要求越来越高[1]。如何保持空间数据的现势性已经成为目前GIS界面临的重要课题,新兴的自发地理信息(volunteered geographic in-formation,VGI)为这个重要的课题提供了一个全新的解决思路。VGI是地理信息数据获取的一
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【参考文献】
中国期刊全文数据库
罗国玮;张新长;齐立新;郭泰圣;;[J];测绘学报;2014年12期
郭泰圣;张新长;梁志宇;;[J];测绘学报;2013年06期
张新长;郭泰圣;唐铁;;[J];测绘学报;2012年04期
李德仁;钱新林;;[J];武汉大学学报(信息科学版);2010年04期
宋振;;[J];测绘;2009年06期
赵仁亮;陈军;王东华;商瑶玲;王中祥;艾廷华;;[J];地理信息世界;2008年03期
陈玉敏;龚健雅;史文中;;[J];测绘学报;2007年01期
中国博士学位论文全文数据库
田文文;[D];武汉大学;2013年
中国硕士学位论文全文数据库
陈舒燕;[D];上海师范大学;2010年
【共引文献】
中国期刊全文数据库
马超;孙群;徐青;王志坚;;[J];地球信息科学学报;2016年10期
宋华标;刘新贵;;[J];测绘与空间地理信息;2016年10期
张浩;武芳;张俊涛;李靖涵;;[J];测绘科学技术学报;2016年03期
胡瑛;;[J];测绘通报;2016年09期
胡瑛;;[J];现代测绘;2016年05期
吴炳方;张淼;曾红伟;张鑫;闫娜娜;蒙继华;;[J];遥感学报;2016年05期
郭宁宁;盛业华;黄宝群;吕海洋;张思阳;;[J];地球信息科学学报;2016年09期
马京振;孙群;肖强;刘超;;[J];地理空间信息;2016年07期
王伟;应申;李程鹏;高玉荣;杨杰;朱利平;;[J];武汉大学学报(信息科学版);2016年11期
张新长;陈家鸿;郭泰圣;;[J];测绘通报;2016年06期
中国博士学位论文全文数据库
张云菲;[D];武汉大学;2015年
陈万志;[D];辽宁工程技术大学;2015年
中国硕士学位论文全文数据库
牟奇玲;[D];华东师范大学;2015年
夏锐;[D];南京师范大学;2014年
张红辉;[D];中南大学;2014年
曹放;[D];辽宁工程技术大学;2013年
王可;[D];南京大学;2013年
顾荣方;[D];浙江大学;2013年
【二级参考文献】
中国期刊全文数据库
郭泰圣;张新长;梁志宇;;[J];测绘学报;2013年06期
许俊奎;武芳;魏慧峰;;[J];测绘科学技术学报;2013年03期
张新长;郭泰圣;唐铁;;[J];测绘学报;2012年04期
陈军;林艳;刘万增;周晓光;;[J];测绘学报;2012年01期
赵学胜;王磊;王洪彬;李颖;;[J];地理与地理信息科学;2012年01期
安晓亚;孙群;肖强;严薇;;[J];测绘学报;2011年04期
林艳;刘万增;王育红;;[J];地理与地理信息科学;2011年04期
李新滨;江娜;孔杰;;[J];测绘与空间地理信息;2011年03期
刁兴春;谭明超;曹建军;;[J];计算机应用研究;2010年12期
吴建华;;[J];地理与地理信息科学;2010年04期
中国博士学位论文全文数据库
钱新林;[D];武汉大学;2011年
肖志强;[D];中南大学;2004年
【相似文献】
中国期刊全文数据库
夏春林;马书英;王朝辉;;[J];辽宁工程技术大学学报;2006年02期
周立;邓云青;;[J];地理空间信息;2008年05期
李庆立;廖斌杰;王萃莲;朱飞玉;;[J];河南科技;2010年13期
张永玉;贾华峰;吴红梅;李娜;;[J];测绘与空间地理信息;2012年09期
武蕊,纪知明;[J];三晋测绘;1996年04期
钱育华;[J];地球信息科学;2002年03期
程耀武;;[J];科技资讯;2010年04期
张铁良;王亮;;[J];科技创新导报;2010年01期
陶留锋;吕建军;刘福江;;[J];北京测绘;2010年01期
李英远;谭建军;陈少沛;;[J];测绘科学;2010年S1期
中国重要会议论文全文数据库
刘术堂;刘乾忠;;[A];山东省“数字国土”学术交流会论文集[C];2007年
唐权;聂时贵;陈珺;;[A];第十四届华东六省一市测绘学会学术交流会论文集[C];2012年
谭平;王洋;盛琦;;[A];浙江测绘(2012第2期总第111期)[C];2012年
张辉;徐狄军;张旭东;;[A];地理空间信息技术及其应用论坛论文集[C];2005年
张辉;徐狄军;张旭东;;[A];华东地区第九次测绘学术交流大会论文集[C];2005年
周玉宏;卢刚;;[A];'2005数字江苏论坛——电子政务与地理信息技术论文专辑[C];2005年
应申;李霖;刘万增;王红;;[A];中国测绘学会第九次全国会员代表大会暨学会成立50周年纪念大会论文集[C];2009年
陈磊;;[A];2013年度江苏省测绘学会年会论文集[C];2013年
周玉宏;卢刚;;[A];'2005数字江苏论坛电子政务与地理信息技术论文专辑[C];2005年
蒋怡然;王孝强;王亚军;李淑贞;;[A];江苏省测绘学会2008年度学术年会论文集[C];2008年
中国重要报纸全文数据库
刘建伟;[N];解放军报;2011年
刘德兴 冯友军;[N];中国工商报;2006年
李超;[N];兰州日报;2007年
中国博士学位论文全文数据库
寇玮华;[D];西南交通大学;2004年
中国硕士学位论文全文数据库
隋慧桥;[D];南京师范大学;2015年
冯驾骎;[D];浙江工业大学;2012年
李晓丹;[D];武汉大学;2005年
姬存伟;[D];解放军信息工程大学;2013年
魏晓峰;[D];华东师范大学;2006年
文华南;[D];湖南师范大学;2010年
孙杨;[D];大连理工大学;2007年
谭跃;[D];东北林业大学;2013年
贾永刚;[D];北京林业大学;2004年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号当前位置:&>&&>& > 生活 > OpenStreetMap
名称: OpenStreetMap
人气: &&&&&
OpenStreetMap是一个由用户共同合作创造世界自由编辑的地图项目。该项目于2004年由Steve Coast在英国创立的,其灵感来自于维基百科,它的优势在于拥有英国和其他地方的专有地图数据。此后,它已发展成为拥有超过100万使用GPS设备,航空摄影和其他自由来源收集数据的注册用户。该网站是由英国注册的非盈利性组织OpenStreetMap基金会支持。
OpenStreetMap数据可以用在许多地方,包括:Craigslist,Geocaching,MapQuest Open,JMP统计软件和Foursquare(取代谷歌地图)。Steve Coast在2004年成立一个专注于测绘英国地图的项目。2006年4月,OpenStreetMap基金会成立,它鼓励自由分享地理位置信息数据。
2006年12月,雅虎证实OpenStreetMap可以利用其航空摄影制作地图。2007年12月,牛津大学成为使用OpenStreetMap数据的第一个大机构。在2008年,其“如何导入和导出数据“业务持续增长,项目开发的工具可以把OpenStreetMap数据导出到电源便携式GPS设备,并替换他们现有的地图。
2008年3月,OpenStreetMap两位创办人宣布,他们已经从使用OpenStreetMap数据的一个商业公司CloudMad那里e募集到240万欧元风险投资资金。
国家/地区分类
本类热门网站

我要回帖

更多关于 绝地求生大神集锦 的文章

 

随机推荐