位置情報を使うようなサービスで、ある緯度経度を中心として、その場所から一定距離の範囲内の緯度経度をもつレコードを抽出したいといったユースケースがあると思います。
そんな時にもGem『alexreisner/geocoder』がめっちゃ便利だったので共有です。
「アルバイトを10秒で探せるiPhone/Androidアプリ Short.Works」のアルバイト情報の抽出でも大活躍しています!
🎉 前置き
『alexreisner/geocoder』の基本的な使い方は、拙著『geocoder 地名から緯度経度に変換 or 緯度経度から住所変換が簡単にできるgem - 酒と泪とRubyとRailsと』
に書いていますので、もしご興味を持っていただけるようならご一読ください^^
😎 一定距離の範囲内のレコードを抽出するコード
ある緯度経度を中心として、その場所から一定距離の範囲内の緯度経度をもつレコードを抽出するコードです。
class Venue < ActiveRecord::Base |
あとはコントローラなどでVenue.within_box(distance, latitude, longitude)
と呼び出してもらえれば、与えられた緯度経度から一定の距離の範囲内にあるレコードをよしなに抽出してきてくれます。
ちなみに正確にはmin_radius
といったオプションでより正確に範囲を指定できるようになるっぽいです!
🍄 お願い
GitHubの説明を斜め読みしただけですので、もし間違ってそうならぜひツッコミお願いします!