0

Haversine 式を使用して 2 地点間の距離を計算します。実際、私は2つの場所の緯度と経度の値を持っています. ここで、Haversine 式を使用してその場所間の距離を計算したいと思います。

例:

 First Place: 
           "lat" :  12.97159870,
           "lng" : -77.59456270

Second Place:
           "lat" :  9.915996999999999,
           "lng" : -78.1218470
        },

ここで、 Haversine Formulaを使用して距離を計算したいと思います。

私を助けてください。ありがとう!

4

3 に答える 3

12

CLLocation クラス (CoreLocation.framework) メソッドの distanceFromLocation:(CLLocation*)loc; を使用できます。

CLLocation *locA = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1];
CLLocation *locB = [[CLLocation alloc] initWithLatitude:lat2 longitude:long2];
CLLocationDistance distance = [locA distanceFromLocation:locB];
[locA release]; [locB release];
于 2011-08-03T11:16:11.160 に答える
6

iOS は、2 つの地理的位置間の距離を計算するための標準的な手段を提供します。そのためには CLLocation クラスを使用する必要があります。

#import <CoreLocation/CoreLocation.h>

CLLocation *loc1 = [[[CLLocation alloc] initWithLatitude:12.97159870 longitude:-77.59456270] autorelease];

CLLocation *loc2 = [[[CLLocation alloc] initWithLatitude: 9.915996 longitude:-78.1218470] autorelease];

double distance = [loc1 distanceFromLocation: loc2];

CoreLocation.frameworkプロジェクトとリンクするためにも追加する必要があります。

于 2011-08-03T11:15:54.393 に答える
1

// ライブラリをプロジェクトにコピーhttps://github.com/heycarsten/haversine-objc . 次に、使用して2つの場所間の距離を取得します

    Haversine *hvs = [[Haversine alloc]initWithLat1:Lati1 lon1:Longi1 lat2:Lati2 lon2:Longi2];

// 数式を使用して距離を取得..

    double dLat1InRad = DEGREES_TO_RADIANS(Lati1);
    double dLong1InRad = DEGREES_TO_RADIANS(Longi1);
    double dLat2InRad = DEGREES_TO_RADIANS(Lati2);
    double dLong2InRad = DEGREES_TO_RADIANS(Longi2);
    double dLongitude = dLong2InRad - dLong1InRad;
    double dLatitude = dLat2InRad - dLat1InRad;
    double a = pow(sin(dLatitude/2.0), 2)+ cos(dLat1InRad) * cos(dLat2InRad) * pow(sin(dLongitude / 2.0), 2);
    double c = 2.0 * asin(sqrt(a));
    const double kEarthRadiusKms = 6376.5;
    double dDistance = kEarthRadiusKms * c;
于 2015-06-19T07:52:33.270 に答える