美文网首页iOS Developer
使用苹果系统自带的地图,火星坐标转换

使用苹果系统自带的地图,火星坐标转换

作者: ShiyongTan | 来源:发表于2016-04-07 11:19 被阅读391次

    #import"CommonMapWGS.h"

    @implementationCommonMapWGS

    //china GPS correct

    //World Geodetic System ==> Mars Geodetic System

    //translate from csharp:https://on4wp7.codeplex.com/SourceControl/changeset/view/21483#353936

    constdoublea =6378245.0;

    constdoubleee =0.00669342162296594323;

    +(CLLocationCoordinate2D)wgs84ToGcj02:(CLLocationCoordinate2D)wgCoord{

    if([selfoutOfChina:wgCoord.latitudelng:wgCoord.longitude]) {

    returnwgCoord;

    }

    doublewgLon = wgCoord.longitude;

    doublewgLat =wgCoord.latitude;

    doubledLat = [selftransformLat: wgLon -105.0y: wgLat -35.0];

    doubledLon = [selftransformLon: wgLon -105.0y: wgLat -35.0];

    doubleradLat = wgLat /180.0*M_PI;

    doublemagic =sin(radLat);

    magic =1-ee* magic * magic;

    doublesqrtMagic =sqrt(magic);

    dLat = (dLat *180.0) / ((a* (1-ee)) / (magic * sqrtMagic) *M_PI);

    dLon = (dLon *180.0) / (a/ sqrtMagic *cos(radLat) *M_PI);

    doublemgLat = wgLat + dLat;

    doublemgLon = wgLon + dLon;

    returnCLLocationCoordinate2DMake(mgLat, mgLon);

    }

    +(BOOL)outOfChina:(double)latlng:(double)lng {

    if(lng <72.004|| lng >137.8347){

    returnYES;

    }

    if(lat <0.8293|| lat >55.8271){

    returnYES;

    }

    returnNO;

    };

    +(double)transformLat:(double)x y:(double)y{

    doubleret = -100.0+2.0* x +3.0* y +0.2* y * y +0.1* x * y +0.2*sqrt(fabs(x));

    ret += (20.0*sin(6.0* x *M_PI) +20.0*sin(2.0* x *M_PI)) *2.0/3.0;

    ret += (20.0*sin(y *M_PI) +40.0*sin(y /3.0*M_PI)) *2.0/3.0;

    ret += (160.0*sin(y /12.0*M_PI) +320*sin(y *M_PI/30.0)) *2.0/3.0;

    returnret;

    }

    +(double)transformLon:(double)xy:(double)y{

    doubleret =300.0+ x +2.0* y +0.1* x * x +0.1* x * y +0.1*sqrt(fabs(x));

    ret += (20.0*sin(6.0* x *M_PI) +20.0*sin(2.0* x *M_PI)) *2.0/3.0;

    ret += (20.0*sin(x *M_PI) +40.0*sin(x /3.0*M_PI)) *2.0/3.0;

    ret += (150.0*sin(x /12.0*M_PI) +300.0*sin(x /30.0*M_PI)) *2.0/3.0;

    returnret;

    }

    @end

    相关文章

      网友评论

        本文标题:使用苹果系统自带的地图,火星坐标转换

        本文链接:https://www.haomeiwen.com/subject/mpimlttx.html