iOS 百度坐标(BD-09) 火星坐标(GCJ-02)互转


// 百度转高德

-(NSDictionary *)bdToGaodeWithLat:(double)lat andLon:(double)lon

{
        
    double x = lon - 0.0065, y = lat - 0.006;
    double z = sqrt(x * x + y * y) - 0.00002 * sin(y * M_PI);
    double theta = atan2(y, x) - 0.000003 * cos(x * M_PI);
    
    double longitude = z * cos(theta);//lng
    double latitude = z * sin(theta);//lat

        NSLog(@"gg_lon:%f",z * cos(theta));

    NSLog(@"gg_lat:%f",z * sin(theta));
    NSString *lonStr = [NSString stringWithFormat:@"%f",longitude];
    NSString *latStr = [NSString stringWithFormat:@"%f",latitude];

    NSDictionary *dic = @{@"longitude":lonStr,@"latitude":latStr};
    
    return dic;
}

//高德转百度

-(NSDictionary *)gaodeToBdWithLat:(double)lat andLon:(double)lon

{
    
    double x = lon + 0.0065, y = lat + 0.006;
    double z = sqrt(x * x + y * y) - 0.00002 * sin(y * M_PI);
    double theta = atan2(y, x) - 0.000003 * cos(x * M_PI);
    
    double longitude = z * cos(theta);//lng
    double latitude = z * sin(theta);//lat
    
    
    NSString *lonStr = [NSString stringWithFormat:@"%f",longitude];
    NSString *latStr = [NSString stringWithFormat:@"%f",latitude];
    
    NSDictionary *dic = @{@"longitude":lonStr,@"latitude":latStr};
    
    return dic;
    
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容