2014-09-26 167 views
1

我嘗試開發iOS應用程序,該應用程序使用UIImagePickerController獲取照片的位置並顯示它我將其部署到iOS 7設備上這就是我所做的。從iOS獲取圖像位置UIImagePickerController

- (IBAction)takePhoto:(id)sender 
{ 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    picker.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
    picker.showsCameraControls = YES; 

    [self presentViewController:picker animated:YES 
        completion:^ { 
//       [picker takePicture]; 
        }];} 




-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    NSLog(@"Media Info: %@", info); 

    NSString *mediaType = [info valueForKey:UIImagePickerControllerMediaType]; 



    ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset) 
    { 
     // Get the location property from the asset 


     CLLocation *location = [myasset valueForProperty:ALAssetPropertyLocation]; 
     // I found that the easiest way is to send the location to another method 

     latitude =location.coordinate.latitude; //[[gpsdata valueForKey:@"Latitude"]floatValue]; 
     longitutde =location.coordinate.longitude; 

     NSString * strLocation=[NSString stringWithFormat:@"La:%f Lo%f",latitude,longitutde]; 



    }; 
    // This block will handle errors: 
    ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror) 
    { 
     NSLog(@"Can not get asset - %@",[myerror localizedDescription]); 
     // Do something to handle the error 
    }; 








    if([mediaType isEqualToString:(NSString*)kUTTypeImage]) { 
     UIImage *photoTaken = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 

     //Save Photo to library only if it wasnt already saved i.e. its just been taken 
     if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { 
      UIImageWriteToSavedPhotosAlbum(photoTaken, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); 
     } 


    } 

    [picker dismissModalViewControllerAnimated:YES]; 
} 

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo { 
    UIAlertView *alert; 
    //NSLog(@"Image:%@", image); 
    if (error) { 
     alert = [[UIAlertView alloc] initWithTitle:@"Error!" 
              message:[error localizedDescription] 
              delegate:nil 
           cancelButtonTitle:@"OK" 
           otherButtonTitles:nil]; 
     [alert show]; 
    } 

} 

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 
    [picker dismissModalViewControllerAnimated:YES]; 
} 

我無法獲得。如何獲取位置?請幫助我。當照片被實現位置服務的taken.Try相同的代碼

// This method is called when an image has been chosen from the library or taken from the camera. 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
//You can retrieve the actual UIImage 
    UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage]; 
//Or you can get the image url from AssetsLibrary 
    NSURL *path = [info valueForKey:UIImagePickerControllerReferenceURL]; 
    [picker dismissViewControllerAnimated:YES completion:^{ 
    }]; 
} 

回答

1

在委託執行,你可以使用圖像的路徑或圖像本身。

0

位置服務應啓用:

相關問題