Shivam Pal Ответов: 0

Я пытаюсь преобразовать свои данные gps в десятичную форму, но он не показывает правильную широту и долготу в консоли


я хочу извлечь gps-местоположение входного изображения пользователя, а затем отметить его на карте. но вот в этом javascript он не показывает правильный результат gps-данных в консоли, когда я преобразую его в десятичные дроби (широта и долгота)

Что я уже пробовал:

function readURL(input) {
        if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#the-img')
                    .attr('src', e.target.result)
                    .width(150)
                    .height(200);
            };

            reader.readAsDataURL(input.files[0]);
        }
    }

    document.getElementById("the-img").onclick = function() {

        EXIF.getData(this, function() {

            myData = this;

            console.log(myData.exifdata);

            var latDegree = myData.exifdata.GPSLatitude[0].numerator;
            var latMinute = myData.exifdata.GPSLatitude[1].numerator;
            var latSecond = myData.exifdata.GPSLatitude[2].numerator;
            var latDirection = myData.exifdata.GPSLatitudeRef;

            var latFinal = ConvertDMSToDD(latDegree, latMinute, latSecond, latDirection);
            console.log(latFinal);

// Calculate longitude decimal
            var lonDegree = myData.exifdata.GPSLongitude[0].numerator;
            var lonMinute = myData.exifdata.GPSLongitude[1].numerator;
            var lonSecond = myData.exifdata.GPSLongitude[2].numerator;
            var lonDirection = myData.exifdata.GPSLongitudeRef;

            var lonFinal = ConvertDMSToDD(lonDegree, lonMinute, lonSecond, lonDirection);
            console.log(lonFinal);
        });
      }

      function ConvertDMSToDD(degrees, minutes, seconds, direction) {

          var dd = degrees + (minutes/60) + (seconds/3600);

          if (direction == "S" || direction == "W") {
              dd = dd * -1;
          }

          return dd;
      }

0x01AA

Вы должны добавить некоторые примеры данных и показать, что вы получаете и чего ожидаете.

0 Ответов