0

私はiPhone開発者にとっては初めてです。始点と終点のアドレスを指定したプロジェクトを設計しています。これらのポイント間の距離が100マイルで、20マイルの5つの等しい部分に分割するとします。それでは、どのようにして開始点から20マイル離れた地点の緯度と経度を取得しますか?

4

1 に答える 1

1

この関数をクラスに追加します。

// position is a number between 0 and 1, where 0 gives the start position, and 1 gives the end position
- (CLLocationCoordinate2D)pointBetweenStartPoint:(CLLocationCoordinate2D)startPoint endPoint:(CLLocationCoordinate2D)endPoint position:(float)position {

    CLLocationDegrees latSpan = endPoint.latitude - startPoint.latitude;
    CLLocationDegrees longSpan = endPoint.longitude - startPoint.longitude;

    CLLocationCoordinate2D ret = CLLocationCoordinate2DMake(startPoint.latitude + latSpan*position,
                                                            startPoint.longitude + longSpan*position);

    return ret;
}

次に、この方法を次のように使用できます(距離を5に分割したい場合)。

CLLocationCoordinate2D startPoint = CLLocationCoordinate2DMake(/* lat, long of start point */);
CLLocationCoordinate2D endPoint = CLLocationCoordinate2DMake(/* lat, long of end point */);

for (int i = 1; i < 5; i++) {
    float position = i / 5.0;
    CLLocationCoordinate2D middlePosition = [self pointBetweenStartPoint:startPoint endPoint:endPoint position:position];
    NSLog("%f, %f", middlePosition.latitude, middlePosition.longitude);
}
于 2011-08-16T08:43:33.307 に答える