3

地図を表示したり、地図上にルートを描画したりしたい。私のアプリケーションは ios 4 plus をサポートしています。では、ios 6でも以前と同じようにマップを使用するにはどうすればよいですか。また、アプリでカスタムマップビューを使用してマップとルートを表示する必要があるか、または使用する必要があるかを知りたい

[[UIApplication sharedApplication] openURL:]

私は一度もユーザーを持っていませんMapKits。したがって、チュートリアルがあれば提供してください。また、使用できる rd パーティ ライブラリがあれば教えてください。

4

2 に答える 2

5

アプリ内マップが必要ない場合。以下を使用します。

NSString *destinationAddress = @"Amsterdam";

Class itemClass = [MKMapItem class];
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) {

    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder geocodeAddressString:destinationAddress completionHandler:^(NSArray *placemarks, NSError *error) {
        if([placemarks count] > 0) {

            MKPlacemark *placeMark = [[MKPlacemark alloc] initWithPlacemark:[placemarks objectAtIndex:0]];

            MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:placeMark];

            MKMapItem *mapItem2 = [MKMapItem mapItemForCurrentLocation];


            NSArray *mapItems = @[mapItem, mapItem2];

            NSDictionary *options = @{
        MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,
        MKLaunchOptionsMapTypeKey:
            [NSNumber numberWithInteger:MKMapTypeStandard],
        MKLaunchOptionsShowsTrafficKey:@YES
            };

            [MKMapItem openMapsWithItems:mapItems launchOptions:options];

        } else {
            //error nothing found
        }
    }];
    return;
} else {

    NSString *sourceAddress = [LocalizedCurrentLocation currentLocationStringForCurrentLanguage];

    NSString *urlToOpen = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%@&daddr=%@",
                 [sourceAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
                 [destinationAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlToOpen]];
}

これにより、マップ アプリケーションが開き、ios5 または ios6 であるかどうかが確認されます。

iOS5 の場合、LocalizedCurrentLocationこの投稿のhttp://www.martip.net/blog/localized-current-location-string-for-iphone-appsを使用します

iOS6 の場合、CLGeocoder を使用して目印を取得し、目印と現在の場所で地図を開きます。

CoreLocation.framework追加することを忘れないでくださいMapKit.framework

于 2012-12-06T12:00:45.410 に答える
1

私はこれがあなたを助けると思います:

http://developer.decarta.com/Apis/IOS/Tutorial/Lesson6

http://developer.decarta.com/Apis/IOS/Tutorial/Lesson6Example

それともこれ?

http://spitzkoff.com/craig/?p=136

マップにデータが必要な場合は、これを行うのが楽しいかもしれません。

http://www.raywenderlich.com/21365/introduction-to-mapkit-in-ios-6-tutorial

またはMapkitに関するいくつかの基本情報

http://www.techotopia.com/index.php/Working_with_Maps_on_the_iPhone_with_MapKit_and_the_MKMapView_Class

于 2012-11-06T08:21:08.353 に答える