geocoderで取得した現在地を日本語で表示する方法
2分目次
手順 1:Geocoder の設定ファイル生成
terminal
$ bundle exec rails generate geocoder:config
手順 2:設定ファイルに追記
config>initializer>geocoder.rb
Geocoder.configure(
:language => :ja, # 追記
# Geocoding options
# timeout: 3, # geocoding service timeout (secs)
# lookup: :nominatim, # name of geocoding service (symbol)
# ip_lookup: :ipinfo_io, # name of IP address geocoding service (symbol)
# language: :en, # ISO-639 language code
# use_https: false, # 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)
# api_key: nil, # 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
)
手順 3:コントローラー側に追記
hoge_controller.rb
def search
@latitude = params[:latitude]
@longitude = params[:longitude]
@results = Geocoder.search([@latitude, @longitude])
end
URL に緯度と経度のパラメータを持たせる処理は Geolocation API で実装しました。
参考:https://qiita.com/Ingward/items/6ad7702dd313484f2b1c
手順 4:ビューで表示
search.html.erb
<h2>現在地: <%= @results.first.address %></h2>
<!-- 上はあくまで一例 -->
<!-- `address`の部分は`city`とか`state`とかに変更もできます -->
<!-- 例)<%= @results.first.city %> -->
<!-- `address`では郵便番号から町名まで表示されます -->
完成