Я обнаружил забавную небольшую проблему при работе над кросс-платформенным приложением, которое я недавно выпустил. Журнал соколиной охоты (Android, iOS)

Когда вы проверяете данные EXIF ​​на iOS в поисках координат геокода, вы получаете то, что ожидаете:

В данных exif у вас есть объект GPS, который имеет полностью сформированные данные долготы и широты, которые вы можете использовать, как вы ожидаете, однако, когда вы ищете те же данные с камеры Android, вы получаете что-то немного неожиданное:

Версия для Android требует от вас небольшой работы, если вам нужны геокоординаты с традиционным десятичным значением. Если вы хотите понять, что здесь происходит, вы можете оказаться здесь: https://en.wikipedia.org/wiki/Geographic_coordinate_conversion и быть таким же растерянным и расстроенным, как и я.

Чтобы попытаться разбить его так просто, как я могу (насколько я понимаю), этот выходной формат выражается как {degrees}/{denominator},{minutes}/{denominator},{seconds}/{divisor}, поэтому эта формула должна преобразовывать его в десятичные значения:

Также есть модификатор направления по каждой координате. Таким образом, если GPSLatitudeRefили GPSLongitudeRefявляется «S» или «W», десятичная дробь должна быть отрицательным числом.

Чтобы собрать все это вместе, мы придумываем эту функцию.

И, наконец, соус.

Я надеюсь, что это поможет кому-то сэкономить несколько минут или часов, а также предотвратит загрузку (еще одного) пакета NPM для обработки этой простой, но запутанной логики!