2012-05-09 21 views
0

現在の位置、方位、距離を考慮してGPS座標を取得しようとしています。現在の位置、方位、距離を指定してGPS座標を取得します。

しかし、私はココアタッチに関連するものは見つかりませんでした。

私は、iOSのためのより容易な方法があり、ここでGet lat/long given current point, distance and bearing

式見つけましたか?

ありがとうございます。

+0

組み込みの方法はありません。あなたがリンクしている数式の[このObjective-C実装](http://stackoverflow.com/questions/6633850/calculate-new-coordinate-x-meters-and-y-degree-away-from-one-coordinate)を試してみてくださいに。 – Anna

答えて

1

Objective-Cへのリンクのコードを変換しました。

- (double)degreesToRadians:(double)degrees { 
    return degrees * M_PI/180; 
} 

- (double)radiansToDegrees:(double)radians { 
    return radians * 180/ M_PI; 
} 


- (CLLocationCoordinate2D)remoteCoordinate:(CLLocationCoordinate2D)localCoordinate withDistance:(double)distance withBearing:(double)bearing { 

    double earthRadius = 6378.1;   // Radius of Earth in kilometres. 

    double rLat1 = [self degreesToRadians:localCoordinate.latitude];  // Convert latitude to radians 
    double rLon1 = [self degreesToRadians:localCoordinate.longitude]; // Convert longitude to radians 

    double rLat2 = asinl(sinl(rLat1) * cosl(distance/earthRadius) + cosl(rLat1) * sinl(distance/earthRadius) * cosl(bearing)); 
    double rLon2 = rLon1 + atan2l(sinl(bearing) * sinl(distance/earthRadius) * cosl(rLat1), cosl(distance/earthRadius) - sinl(rLat1) * sinl(rLat2)); 

    double dLat2 = [self radiansToDegrees:rLat2];  // Convert latitude to degrees 
    double dLon2 = [self radiansToDegrees:rLon2];  // Convert longuitude to degrees 

    return CLLocationCoordinate2DMake(dLat2, dLon2); 
} 
+0

地球の半径は6378 kmではなく、6371 kmです –

関連する問題