2

グーグルマップで私ができること:

http://maps.google.com/maps?q=[タイトル]@[緯度、経度]

その地理位置情報にピンが表示されますが、Appleのドキュメントでは:

http://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Articles/MapLinks.html

これを行う方法はありませんか?

4

3 に答える 3

3

実際、MKMapItem クラス メソッド openMapsWithItems を使用します。

秘訣は、MKMapItem オブジェクトに name プロパティがあることです。openMapsWithItems に渡す MKMapItem オブジェクトに name プロパティを設定すると、それらのアイテムは、マップを開いたときにマップ内で名前が付けられます。

したがって、手順は次のとおりです。

ピンの MKPlacemark を作成します。緯度/経度座標、または住所情報を提供できます。

目印から MKMapItem を作成する マップ アイテムに name プロパティを設定します。

を呼び出し[MKMapItem openMapsWithItems:launchOptions:]てマップ アプリを開き、指定された場所にピンをドロップします。この呼び出しを使用して、複数のピンをドロップしたり、2 地点間の徒歩または運転ルートを提供したりできることに注意してください。

于 2012-12-13T18:26:44.347 に答える
2
-(void)create_Map{


    for (int i=0; i<[arrayMap count]; i++) {

        CLLocationCoordinate2D theCoordinate1;
        theCoordinate1.latitude =[[[arrayMap objectAtIndex:i]objectForKey:@"latitude"] doubleValue];
        theCoordinate1.longitude =[[[arrayMap objectAtIndex:i]objectForKey:@"longitude"] doubleValue];
        addAnnotation = [[AddressAnnotation alloc] initWithCoordinate:theCoordinate1];
        addAnnotation.mTitle=[[arrayMap objectAtIndex:i]objectForKey:@"place"];
        [_locMapView addAnnotation:addAnnotation];

    }



    NSArray *coordinates = [_locMapView valueForKeyPath:@"annotations.coordinate"];
    // look for the minimum and maximum coordinate
    NSLog(@"coordinates     %@ %i ",coordinates,[arrayMap count]);

    CLLocationCoordinate2D maxCoord = {-90.0f, -180.0f};
    CLLocationCoordinate2D minCoord = {90.0f, 180.0f};
    for(NSValue *value in coordinates) {
        CLLocationCoordinate2D coord = {0.0f, 0.0f};
        [value getValue:&coord];
        if(coord.longitude > maxCoord.longitude) {
            maxCoord.longitude = coord.longitude;

            NSLog(@"maxCoord.longitude     %f  ",maxCoord.longitude);
        }
        if(coord.latitude > maxCoord.latitude) {
            maxCoord.latitude = coord.latitude;
        }
        if(coord.longitude < minCoord.longitude) {
            minCoord.longitude = coord.longitude;
        }
        if(coord.latitude < minCoord.latitude) {
            minCoord.latitude = coord.latitude;
        }
    }
    // create a region
     MKCoordinateRegion region = {{0.0f, 0.0f}, {0.0f, 0.0f}};
    region.center.longitude = (minCoord.longitude + maxCoord.longitude) / 2.0;
    region.center.latitude = (minCoord.latitude + maxCoord.latitude) / 2.0;
    // calculate the span
    region.span.longitudeDelta = maxCoord.longitude - minCoord.longitude;
    region.span.latitudeDelta = maxCoord.latitude - minCoord.latitude;

    [_locMapView setRegion:region animated:YES];

   // [_locMapView setRegion:region animated:TRUE];
  //  [_locMapView regionThatFits:region];


}
于 2013-04-26T10:23:37.967 に答える
0

一例を次に示します。

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(_transaction.lat.doubleValue, _transaction.lon.doubleValue);

MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:location addressDictionary:nil];
MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
mapItem.name = _transaction.merchant_name;
[mapItem openInMapsWithLaunchOptions:@{MKLaunchOptionsMapTypeKey : @(MKMapTypeStandard),
                                       MKLaunchOptionsShowsTrafficKey : @YES}];
于 2015-06-21T04:04:22.687 に答える