2012-05-23 14 views
5

私はいくつかのiPhoneアプリで作業していますが、加速度計を使用しているユーザーの場所に応じて特定の地理位置に移動する画像を作成したいと考えています。iOS:マップなしの現在地からの地理的な位置からの角度を取得

ここでは多くの回答を読んでいますが、解決策はありませんでした。

私は現在の位置座標と目的地座標を持っています。

アイデアやサンプルコードはありますか?ありがとう。トップに

+0

参照[この](http://stackoverflow.com/questions/6745131/how-can-we-find-the-angle-between-two-locations-defined-by-latitude-or-longitude )と[this](http://www.movable-type.co.uk/scripts/latlong.html)参照 –

答えて

9

この

#define RadiansToDegrees(radians)(radians * 180.0/M_PI) 
#define DegreesToRadians(degrees)(degrees * M_PI/180.0) 

は.hファイルであなたのロケーションマネージャのデリゲートメソッドで

float GeoAngle; 

変数を定義定義: -

-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{ 
    GeoAngle = [self setLatLonForDistanceAndAngle:newLocation]; 
} 

を、次のように機能がされます: -

-(float)setLatLonForDistanceAndAngle:(CLLocation *)userlocation 
{ 
    float lat1 = DegreesToRadians(userlocation.coordinate.latitude); 
    float lon1 = DegreesToRadians(userlocation.coordinate.longitude); 

    float lat2 = DegreesToRadians(locLat); 
    float lon2 = DegreesToRadians(locLon); 

    float dLon = lon2 - lon1; 

    float y = sin(dLon) * cos(lat2); 
    float x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dLon); 
    float radiansBearing = atan2(y, x); 
    if(radiansBearing < 0.0) 
    { 
     radiansBearing += 2*M_PI; 
    } 

    return radiansBearing; 
} 

GeoAngle変数では常に角度が更新されます。 矢印を目的地に回転するには、矢印の画像を使ってarrowImageViewのIBOutletに割り当て、見出し更新メソッドでこれを回転させます。

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 
{ 
    float direction = -newHeading.trueHeading; 

    arrowImageView.transform=CGAffineTransformMakeRotation((direction* M_PI/180)+ GeoAngle); 
} 
+0

あなたは私にアングルを手に入れましたが、この方向を示すために加速度計を使ってイメージを正しく回転させるにはどうすればいいですか?私はこの方法で角度を使用しています: - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration;それでも私はiPhoneを回転させてもまだ更新していません。 – hafedh

+0

矢印を目的地に向ける場合は、再度回答を確認してください。回答を編集しました。 – Dhawal

+0

それは働いた!どうもありがとうございました。 – hafedh

関連する問題