Lorsque j'ai utilisé l'API googlemap dans le post-scriptum de l'article que j'ai écrit plus tôt, j'étais accro au fait que l'adresse était enregistrée mais que la latitude et la longitude n'étaient pas enregistrées, je vais donc le laisser en post-scriptum.
Je peux entrer l'adresse et la poster, et elle est enregistrée dans la base de données, mais je veux résoudre le problème que la latitude et la longitude ne sont pas enregistrées.
En regardant divers articles, il semble que la précision du géocodeur ne soit pas très bonne à moins que rien ne soit défini. Afin de le résoudre, il semble que vous deviez le configurer de manière à pouvoir utiliser la source d'informations de l'API Google Map.
Implémentons-le maintenant.
Créez un fichier geocoder.rb dans le dossier config.
Terminal
$ bin/rails g geocoder:config
La description ci-dessus créera un fichier config / initializers / geocoder.rb.
Modifiez le fichier créé.
geocoder.rb
Geocoder.configure(
# Geocoding options
# timeout: 3, # geocoding service timeout (secs)
lookup: :google, # name of geocoding service (symbol)
# ip_lookup: :ipinfo_io, # name of IP address geocoding service (symbol)
# language: :en, # ISO-639 language code
use_https: true, # use HTTPS for lookup requests? (if supported)
# http_proxy: nil, # HTTP proxy server (user:pass@host:port)
# https_proxy: nil, # HTTPS proxy server (user:pass@host:port)
#YOUR_API_Entrez votre propre clé API dans KEY.
api_key: YOUR_API_KEY, # API key for geocoding service
# cache: nil, # cache object (must respond to #[], #[]=, and #del)
# cache_prefix: 'geocoder:', # prefix (string) to use for all cache keys
# Exceptions that should not be rescued by default
# (if you want to implement custom error handling);
# supports SocketError and Timeout::Error
# always_raise: [],
# Calculation options
# units: :mi, # :km for kilometers or :mi for miles
# distances: :linear # :spherical or :linear
)
Avec cela, il semble que la précision du géocodeur puisse être améliorée et que des emplacements plus détaillés puissent être étudiés.
C'est tout pour résoudre mon problème! Il est possible que d'autres causes soient une erreur de description ou un traitement manquant, mais j'espère que cela vous sera utile!
Recommended Posts