Мне нужно получить широту и долготу изображения, снятого или загруженного с помощью приложения SF 1. Я использую EXIF, чтобы получить то же самое в javascript (помощник). Пока он работает на Android, то же самое не работает на IOS. Кто-нибудь знает, как это сделать. Ниже приведена часть моего кода, который я пробовал:

 pic.onload = function(){
                                    alert('EXIF'+EXIF);

                                    window.setTimeout(
                                        $A.getCallback(function() {
                                            EXIF.getData(this, function (){
                                                alert('inside exif');
                                                alert('lat'+EXIF.getTag(this, 'GPSLatitude'));
                                                alert('long'+EXIF.getTag(this, 'GPSLongitude'));
                                                var longitude = EXIF.getTag(this, 'GPSLongitude');
                                                var latitude = EXIF.getTag(this, 'GPSLatitude');
                                                if((longitude != null && latitude != null && typeof latitude != 'undefined' && typeof longitude !='undefined') || component.get("v.isLatLongRequired")  == false)  {
                                                    if(longitude != null && latitude != null && typeof latitude != 'undefined' && typeof longitude !='undefined'){
                                                        console.log('image contains lat long'+(latitude[0].numerator + latitude[1].numerator /(60 * latitude[1].denominator) + latitude[2].numerator / (3600 * latitude[2].denominator)));
                                                        component.set("v.latitude", (latitude[0].numerator + latitude[1].numerator /(60 * latitude[1].denominator) + latitude[2].numerator / (3600 * latitude[2].denominator)));
                                                        component.set("v.longitude", (longitude[0].numerator + longitude[1].numerator /(60 * longitude[1].denominator) + longitude[2].numerator / (3600 * longitude[2].denominator)));
                                                        console.log("latitute"+component.get("v.latitude"));
                                                        console.log("longitude"+component.get("v.longitude"));
                                                        if(component.get("v.latitude") == null || component.get("v.longitude") == null || isNaN(component.get("v.latitude")) || isNaN(component.get("v.longitude")))
                                                        {
0
Pankaj Andhale 31 Май 2019 в 07:57

1 ответ

Это не работает на iOS, потому что ОС очищает геолокацию во время загрузки. Ваш код должен работать на iOS для изображения, загруженного на Android. Это подтвердит это.

1
Jean-michel Mougeolle 1 Июн 2019 в 23:35
Привет, @Jean, Да, я понял, но есть ли у меня здесь какая-то работа, так как это требуется в моем проекте, так как мне нужно, чтобы значения местоположения изображения загружались через IOS. Я застрял на том же после многих попыток.
 – 
Pankaj Andhale
2 Июн 2019 в 18:33