iOS自带地图为高德地图,很容易让人误解为和高的SDK一样。但是经纬度标准和国内高的地图经纬度标准不一致,iOS系统内置为国际标准(WGS-84),国内高德地图SDK地图为GCJ-02)<火星坐标>(百度地理坐标为(BD-09))。很多时候发现问题的时候项目已经进行了大部分,这个时候就可用到各类标准转码。详细可见demo,具体demo:
底部点击demo可下载
/**
* @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)
*/
+ (CLLocationCoordinate2D)wgs84ToBd09:(CLLocationCoordinate2D)location;
/**
* @brief中国国测局地理坐标(GCJ-02)<火星坐标>转换成百度地理坐标(BD-09)
*
* @param location 中国国测局地理坐标(GCJ-02)<火星坐标>
*
* @return百度地理坐标(BD-09)
*/
+ (CLLocationCoordinate2D)gcj02ToBd09:(CLLocationCoordinate2D)location;
/**
* @brief百度地理坐标(BD-09)转换成中国国测局地理坐标(GCJ-02)<火星坐标>
*
* @param location 百度地理坐标(BD-09)
*
* @return中国国测局地理坐标(GCJ-02)<火星坐标>
*/
+ (CLLocationCoordinate2D)bd09ToGcj02:(CLLocationCoordinate2D)location;
/**
* @brief百度地理坐标(BD-09)转换成世界标准地理坐标(WGS-84)
*
* ####此接口有1-2米左右的误差,需要精确定位情景慎用
*
* @param location 百度地理坐标(BD-09)
*
* @return世界标准地理坐标(WGS-84)
*/
+ (CLLocationCoordinate2D)bd09ToWgs84:(CLLocationCoordinate2D)location;
点击下载demo