はじめに
以前書いた記事の追記でgooglemapAPIを使用した際に、住所は登録できているが緯度、経度が保存されないことでハマったので追記として残しておきます。
【rails】google maps api 地図情報含んだ投稿をして表示させる方法
実現したいこと
住所入力して投稿できてデータベースにも保存されているが、緯度、経度が保存されないことを解決させたい。
#geocoderについて
いろいろな記事を調べているとgeocoderは何も設定しないと精度があまり良くないことがあるそうです。
解決するためにはGoogle Map APIの情報源を使えるように設定すれば良いそうです。
#geocoder.rbファイルを作成
ではさっそく実装していきましょう。
configフォルダ内にgeocoder.rbファイルを作成します。
ターミナル
$ bin/rails g geocoder:config
上記の記述によりconfig/initializers/geocoder.rb ファイルが作成されます。
作成されたファイルを編集していきます。
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_KEYにはご自身のAPIキーを記述してください。
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
)
これでgeocoderの精度をあげてより詳細な場所を調べられるようになるそうです。
終わりに
以上で自分の問題は解決できました!
他にも記述ミスや処理が抜けている事が原因として考えられる可能性がありますが参考になれば嬉しいです!