Как получить данные GPS из фотографии - PullRequest
0 голосов
/ 25 октября 2018

Я пару дней пытался найти способ получить местоположение GPS из фотографии внутри библиотеки фотографий.Я использую UIImagePicker для получения фотографии, но ни одно из решений, опубликованных в Интернете, похоже, не работает.Я понял, что должен преобразовать UIImage в PHAsset, но везде люди используют устаревший метод с именем fetchAssets(withALAssetURLs: [URL], options: PHFetchOptions?).Есть ли способ добиться этого?Большое спасибо

1 Ответ

0 голосов
/ 26 октября 2018

Надеюсь, это поможет вам: -

//step1:- import Photos

//step2:- when you presenting imagepicker controller

    if PHPhotoLibrary.authorizationStatus() == .authorized || PHPhotoLibrary.authorizationStatus() == .authorized{
        PHPhotoLibrary.requestAuthorization { [weak self](_) in
        // Present the UIImagePickerController
        self?.present(self!.imagePicker, animated: true, completion: nil)
    }
}

swift3.0 и Swift4.0

//step3:-
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    //obtaining saving path
    let fileManager = FileManager.default
    let documentsPath = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first
    let imagePath = documentsPath?.appendingPathComponent("image.jpg")
    // extract image from the picker and save it
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        let data = UIImageJPEGRepresentation(pickedImage, 0.75)
        data.write(toFile: localPath!, atomically: true)
    }

    let coordinate = (info[UIImagePickerControllerPHAsset] as? PHAsset)?.location?.coordinate
    print(coordinate?.latitude ?? "No latitude found")
    print(coordinate?.longitude ?? "No longitude found")
    self.dismiss(animated: true, completion: nil)
}

swift 4.2

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

    //obtaining saving path
    let fileManager = FileManager.default
    let documentsPath = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first
    let imagePath = documentsPath?.appendingPathComponent("image.jpg")

    // extract image from the picker and save it
    if let pickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {

        let imageData = pickedImage.jpegData(compressionQuality: 0.75)
        try! imageData?.write(to: imagePath!)
    }

    let coordinate = (info[UIImagePickerController.InfoKey.phAsset] as? PHAsset)?.location?.coordinate
    print(coordinate?.latitude ?? "No latitude found")
    print(coordinate?.longitude ?? "No longitude found")
    self.dismiss(animated: true, completion: nil)
}

enter image description here

Спасибо

...