-1

N/S と E/W 記号の座標があります。に変換する必要がありCLLocationCoordinate2Dます。度数文字列と方向文字列を別々に変換する方法を知る必要があります。

例:

longitude: @"80.26416666666667"
longitude direction: @"E"
latitude: @"13.05866666666667"
latitude direction: @"N"

N/E と W/S を正または負の大きさの元の float 値に変換する方法

4

1 に答える 1

1

文字列を数値に変換するには、次のメソッドを使用できますNSString

#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool {

        NSString *longitudeStr = @"80.26416666666667";
        NSString *longitudeCardinalDirection = @"E";
        NSString *latitudeStr = @"13.05866666666667";
        NSString *latitudeCardinalDirection = @"N";

        CLLocationDegrees longitude = [longitudeStr doubleValue];
        CLLocationDegrees latitude = [latitudeStr doubleValue];

        if ([longitudeCardinalDirection isEqualToString:@"W"]) longitude *= -1;
        if ([latitudeCardinalDirection isEqualToString:@"S"]) latitude *= -1;

        CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(latitude, longitude);

        NSLog(@"%f, %f", coord.latitude, coord.longitude);
    }
    return 0;
}
于 2014-03-29T20:41:10.507 に答える