0

私は2セットの座標を持っています。ユーザーは、ある場所から別の場所に移動する必要があります。2 つの座標間の方向を示す最良の方法は何でしょうか。2点間の距離を計算しました。2つの座標間の角度も見つけました。

p1 = CGPointMake(coordinatesInDisplacement.latitude, coordinatesInDisplacement.longitude);
p2 = CGPointMake(coordinatesInDistance.latitude,coordinatesInDistance.longitude);

f = [self pointPairToBearingDegrees:p1 secondPoint:p2];

- (CGFloat) pointPairToBearingDegrees:(CGPoint)startingPoint secondPoint:(CGPoint) endingPoint
{
CGPoint originPoint = CGPointMake(endingPoint.x - startingPoint.x, endingPoint.y - startingPoint.y); // get origin point to origin by subtracting end from start
float bearingRadians = atan2f(originPoint.y, originPoint.x); // get bearing in radians
float bearingDegrees = bearingRadians * (180.0 / M_PI); // convert to degrees
bearingDegrees = (bearingDegrees > 0.0 ? bearingDegrees : (360.0 + bearingDegrees)); // correct discontinuity
return bearingDegrees;
}

ナビゲーションに使用する方向なしで角度を見つけることです。提供された2つの座標のみで方向を見つけることは可能ですか?

でも、それだけでは済まないと思います。出発点から目的地に正しく到達するために、IOS デバイスからユーザーにどのような詳細情報を提供する必要がありますか (または提供できるか)。

編集: 私は 2 つの場所を持っています。1 つはイギリスにあり、もう 1 つはスペインにあります。スペインからイギリスに旅行する場合、

  1. 30°N 20°W のような方向を取得することは可能ですか? つまり、イギリスに到達するには、スペインから北緯 30 度、西経 20 度に移動する必要があります。

  2. 上で述べた度単位の角度と同じ方位角です。

4

2 に答える 2

1

「見出し/方位」とは、北を指す線と、進行方向を指す線との間の角度です。したがって、ターゲットが真北にある場合、方位は 0° です。ターゲットが真東にある場合、進行方向は 90° です。方位は常に北から測定されるため、90°N とは言いません。測定値としてそれを持っている場合、ほとんどの地理学者は、赤道から 30°上を意味していると考えるでしょう。

StackOverlow に関する別の質問は、Haversine 式の Objective-C 実装を示しています。赤道に近い場合は、より高速な式を使用でき、それほど間違っていませんが、iOS デバイスの速度では、これらの計算を何百万回も実行しない限り、より正確な式を使用した方がよいでしょう。

于 2013-09-05T20:46:33.653 に答える
1

hasersine 式を使用して、2 つの緯度、経度の間の方位角を計算できます。

距離、方位、中点などを与える hasersine 式については、このリンクをたどってください。

ジオコーディネイト ジオ コーディネイトの詳細

于 2013-09-05T10:39:56.477 に答える