LocationManager定位国内偏移,WGS-84、GCJ-02、BD-09之间转换

开发过程中我们会不可避免的用到定位功能,而不同的方法得到的坐标也会有些偏差,比如系统的CLLocationManager定位得到的是世界标准地理坐标(WGS-84)、高德SDK定位得到的是火星坐标(GCJ-02)、百度SDK定位得到的是百度地理坐标(BD-09),那这些坐标之间是怎么实现转换的呢
<span style="font-family: Arial, Helvetica, sans-serif;">//  CoordinateTransformation.h</span>
//  Created by MLS on 15/12/22.
//  Copyright © 2015年 MLS. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface CoordinateTransformation : NSObject

/**
 *	@brief	判断是否在中国
 *
 *	@param 	location 	世界标准地理坐标(WGS-84)
 *
 *	@return	中国国测局地理坐标(GCJ-02)<火星坐标>
 */
+(BOOL)isLocationOutOfChina:(CLLocationCoordinate2D)location;


/**
 *	@brief	世界标准地理坐标(WGS-84) 转换成 中国国测局地理坐标(GCJ-02)<火星坐标>
 *
 *  ####只在中国大陆的范围的坐标有效,以外直接返回世界标准坐标
 *
 *	@param 	location 	世界标准地理坐标(WGS-84)
 *
 *	@return	中国国测局地理坐标(GCJ-02)<火星坐标>
 */
+ (CLLocationCoordinate2D)WGS84ToGCJ02:(CLLocationCoordinate2D)location;


/**
 *	@brief	中国国测局地理坐标(GCJ-02) 转换成 世界标准地理坐标(WGS-84)
 *
 *  ####此接口有1-2米左右的误差,需要精确定位情景慎用
 *
 *	@param 	location 	中国国测局地理坐标(GCJ-02)
 *
 *	@return	世界标准地理坐标(WGS-84)
 */
+ (CLLocationCoordinate2D)GCJ02ToWGS84:(CLLocationCoordinate2D)location;


/**
 *	@brief	世界标准地理坐标(WGS-84) 转换成 百度地理坐标(BD-09)
 *
 *	@param 	location 	世界标准地理坐标(WGS-84)
 *
 *	@return	百度地理坐标(BD-09)
 */
+ (CLLocationCoordi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值