iOS地图视图缺少某个位置的图钉

时间:2013-12-16 13:26:14

标签: ios objective-c mapkit

当我尝试调用iOS地图从当前位置导航到我的应用中的某个位置时,我遇到了一个非常奇怪的问题。路线已正确计算,但目标位置在地图中没有引脚,但当前位置有引脚。我的代码如下。我想我错过了一些非常基本但却无法弄明白的东西....任何想法?

(void) routeInMap
{
    CLLocationCoordinate2D location;
    location.latitude = [[thisAttraction objectForKey:@"lat"] floatValue];
    location.longitude = [[thisAttraction objectForKey:@"lng"] floatValue];

    Class mapItemClass = [MKMapItem class];
    if (mapItemClass && [mapItemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)])
    {
        CLGeocoder *geocoder = [[CLGeocoder alloc] init];
        [geocoder geocodeAddressString:[thisAttraction objectForKey:@"placeAddress"]
        completionHandler:^(NSArray *placemarks, NSError *error) {

            // Convert the CLPlacemark to an MKPlacemark
            // Note: There's no error checking for a failed geocode
            CLPlacemark *geocodedPlacemark = [placemarks objectAtIndex:0];
            MKPlacemark *placemark = [[MKPlacemark alloc]
                                      initWithCoordinate:location
                                      addressDictionary:geocodedPlacemark.addressDictionary];

            // Create a map item for the geocoded address to pass to Maps app
            MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
            [mapItem setName:geocodedPlacemark.name];

            // Set the directions mode to "Driving"
            // Can use MKLaunchOptionsDirectionsModeWalking instead
            NSDictionary *launchOptions = @{MKLaunchOptionsDirectionsModeKey : MKLaunchOptionsDirectionsModeDriving};

            // Get the "Current User Location" MKMapItem
            MKMapItem *currentLocationMapItem = [MKMapItem mapItemForCurrentLocation];

            // Pass the current location and destination map items to the Maps app
            // Set the direction mode in the launchOptions dictionary
            [MKMapItem openMapsWithItems:@[currentLocationMapItem, mapItem] launchOptions:launchOptions];
        }];
    }
}

0 个答案:

没有答案