[RUBY] Obtenez rapidement des informations de localisation

Je développe généralement avec Rails. À ce moment-là, j'étais accro à la partie inattendue de l'acquisition des informations de localisation, est-ce donc un mémorandum du code créé? La tête haute? Je vais le laisser tel quel. Si vous souhaitez voir uniquement la situation dans laquelle les informations GPS ne peuvent pas être obtenues, passez à «GPS n'a pas pu être obtenu».

Immédiatement, je vais essayer de confirmer les informations de localisation dans le terminal. Vous pouvez également copier et coller le code.

environnement: Ruby2.6.6 ImageMagick 7.0.10-34

Créer un fichier Ruby

Cette fois, j'ai créé un fichier main.rb dans un répertoire appelé gps_test. Ensuite, écrivez le code suivant.

main.rb


require 'rmagick'

img = Magick::ImageList.new(File.expand_path('~/Downloads/Nom des données d'image'))
p img
p img.get_exif_by_entry('GPSLatitude')

#Latitude: conversion en nombre décimal et sortie
exif_lat = img.get_exif_by_entry('GPSLatitude')[0][1].split(',').map(&:strip)
latitude = (Rational(exif_lat[0]) + Rational(exif_lat[1])/60 + Rational(exif_lat[2])/3600).to_f
p latitude

#Longitude: conversion en nombre décimal et sortie
exif_lng = img.get_exif_by_entry('GPSLongitude')[0][1].split(',').map(&:strip)
longitude = (Rational(exif_lng[0]) + Rational(exif_lng[1])/60 + Rational(exif_lng[2])/3600).to_f
p longitude

Entrez le fichier image que vous souhaitez lire (IMG_8765.jpg, etc.) dans ʻNom des données d'image`.

Si vous faites Magick :: ImageList.new (File.expand_path ('~ / Desktop / image data name')), il sera lu depuis le bureau. (Comme vous le voyez ..)

Dans mon cas, l'autorisation de lecture du répertoire de téléchargement n'a pas été définie, je l'ai donc chargée en tant que Desktop.

Installez RMagick

Exécutez les opérations suivantes à partir du terminal dans le projet

$ gem install rmagick

À ce stade, si une erreur se produit, cela sera utile. L'installation a échoué avec l'installation de gem rmagick Impossible d'installer avec l'installation groupée "rmagick"

Exécutez un programme Ruby

$ ruby main.rb

Résultat d'exécution

ruby main.rb
[/Users/tn/Desktop/Akihabara.jpeg JPEG 1200x1600 1200x1600+0+0 DirectClass 8-bit 535kb]
scene=0
[["GPSLatitude", "35/1, 41/1, 5920/100"]]
35.699777777777776
139.7717

Vous avez maintenant la latitude et la longitude du GPS!

Le GPS n'a pas pu être obtenu

En conclusion ** Le GPS n'a pas pu être obtenu car il s'agissait d'une image HDR prise avec un iPhone. ** Cela signifie.

Il existe une fonction appelée "HDR auto" dans les paramètres de l'iPhone.

HDR automatique: Une fonction qui permet de prendre plusieurs photos en continu à grande vitesse avec différentes expositions et de les combiner en une photo qui exprime clairement les zones lumineuses et les détails d'ombre.

S'il s'agit d'un terminal iPhone, vous pouvez voir la carte en la définissant avec les informations de localisation = le GPS sera également acquis J'ai pensé, mais je n'ai pas pu l'obtenir avec le contenu décrit au début. (Si vous savez comment l'obtenir, faites-le moi savoir ...)

Le programme ne devrait pas se tromper, alors pourquoi ne puis-je pas comprendre ... Vous voudrez peut-être vous assurer que le HDR automatique est désactivé. Je me demande combien d'heures j'ai perdu avec ça ... pleurer Désactiver le HDR automatique de l'iPhone

Je faisais une simple vérification à partir de l'aperçu pour voir si les informations de localisation étaient incluses. [Mac] Comment vérifier rapidement les informations de position (géolocalisation) d'une image

** Cependant, pourquoi le GPS ne peut-il pas être lu alors que les informations de localisation sont définies? J'ai essayé de vérifier s'il existe un modèle de réglage. ** **

Vérification du modèle (le réglage des informations de position est activé)

Motif 1 à la fois ON Activer "HDR automatique (fonction de synthèse)" Résultat: Activez "Quitter la photo normale" → Le GPS ne peut pas être lu

Motif 2 un côté Activer "HDR automatique (fonction de synthèse)" Résultat: "Laisser une photo normale" est désactivé → Le GPS ne peut pas être lu

Motif 3 un côté La fonction "HDR automatique (fonction de synthèse)" est désactivée. Résultat: "Laisser une photo normale" est désactivé → Le GPS ne peut pas être lu

Motif 4 État de l'image de référence La fonction "HDR automatique (fonction de synthèse)" est désactivée. Résultat: Activez «Laisser les photos normales» ** → Le GPS peut être acquis **

image de référence: スクリーンショット 2020-10-29 15.52.07.png

Sommaire

Auto-apprentissage et inefficace, mais c'est aussi une expérience! !! Je pense que j'ai aussi grandi un peu cette fois et je continuerai à relever le défi du développement. C'était un contenu basique, mais j'espère que vous pourrez vous référer à la méthode d'acquisition et aux précautions.

référence

Utilisez R Magick pour convertir les informations de position Exif de l'image en valeur décimale

Recommended Posts

Obtenez rapidement des informations de localisation
Obtenir des informations de localisation Android
Obtenez des informations de localisation avec Rails et triez par ordre croissant
Obtenir des informations EXIF en Java
[Ethereum] Obtenir des informations de bloc à l'aide de web3j
Acquisition des informations de localisation à l'aide de FusedLocationProviderClient
Obtenir des informations sur l'appelant à partir de la trace de la pile (Java)
[Java] Obtenir des informations sur les balises à partir de fichiers musicaux
Obtenez des informations de compte en accédant à l'API de Strava