0

まず、クラスにロケーションマネージャー関数を実装しましたが、whictは正常に機能しており、現在のロケーションを取得できます。その場所から、ここから場所の度数を取得する方法を取得しました。しかし、私は方向(すなわち、北、南、東、西)を得ることができません。私もこれを参照しました。このような方向形式で度数で表示される場所が欲しいです。つまり、ロケーションマネージャーから+ 37.33019332、-122.02298792が返され、37°19 '49 " N、-122°1'23" Eのようなものが必要です。最後の「N」と「E」を取得する方法がわからないだけで、すべてのものを取得しています。これを使用するCLLocation.courseと、方向コースを取得できます。どんな助けでもいただければ幸いです。

4

2 に答える 2

4

これは実際には非常に簡単です。緯度は赤道で0°から始まり、北極は90.0、南極は-90.0です。基本的に、緯度が0〜90の場合、緯度が0〜-90の場合は、北半球と南半球にいます。

経度は基本的に同じように機能します。0°は、イギリスのグリニッジとアフリカの一部を通る架空の線である本初子午線を指します。180°までの正の経度は本初子午線の東の場所を指し、負の経度は本初子午線の西の180°までの領域を指します。

于 2012-07-24T05:34:01.257 に答える
2

このコードを使用して、CLLocationManagerDelegateを.hファイルに配置します

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{             
    updatedHeading = newHeading.magneticHeading;
    float headingFloat = 0 - newHeading.magneticHeading;

    rotateImg.transform = CGAffineTransformMakeRotation(headingFloat*radianConst);    
    float value = updatedHeading;
    if(value >= 0 && value < 23)
    {
        compassFault.text = [NSString stringWithFormat:@"%f° N",value];
    }
    else if(value >=23 && value < 68)
    {
        compassFault.text = [NSString stringWithFormat:@"%f° NE",value];
    }
    else if(value >=68 && value < 113)
    {
        compassFault.text = [NSString stringWithFormat:@"%f° E",value];
    }
    else if(value >=113 && value < 185)
    {
        compassFault.text = [NSString stringWithFormat:@"%f° SE",value];
    }
    else if(value >=185 && value < 203)
    {
        compassFault.text = [NSString stringWithFormat:@"%f° S",value];
    }
    else if(value >=203 && value < 249)
    {
        compassFault.text = [NSString stringWithFormat:@"%f° SE",value];
    }
    else if(value >=249 && value < 293)
    {
        compassFault.text = [NSString stringWithFormat:@"%f° W",value];
    }
    else if(value >=293 && value < 350)
    {
        compassFault.text = [NSString stringWithFormat:@"%f° NW",value];
    }
  }
于 2012-07-24T05:49:31.693 に答える