私は Sinatra で小さなアプリを作成しています。ユーザーの都市を郵便番号 (ユーザーが入力する)、ユーザーと他のユーザーの間の距離 (郵便番号による)、および場合によっては熱から判断したいと考えています。ジッパーの地図。
どうすればいいですか?geoip gem を試してみましたが、思いどおりに動作しないようです。Google マップのような外部サービスを使用しますか (もちろん、ヒート マップにはこれが必要です)。
助けてくれてありがとう。
私は Sinatra で小さなアプリを作成しています。ユーザーの都市を郵便番号 (ユーザーが入力する)、ユーザーと他のユーザーの間の距離 (郵便番号による)、および場合によっては熱から判断したいと考えています。ジッパーの地図。
どうすればいいですか?geoip gem を試してみましたが、思いどおりに動作しないようです。Google マップのような外部サービスを使用しますか (もちろん、ヒート マップにはこれが必要です)。
助けてくれてありがとう。
GeoKit gemは、あなたがやりたいことにぴったりのように思えます。
さまざまなジオコーディング サービス (Yahoo、Google など) へのインターフェイスを抽象化し、距離計算用のコードを提供します。
郵便番号をジオコーディングして、場所を取得したり、場所に関する住所情報にアクセスしたり、場所間の距離を計算したりできます。
ライブラリがどのように機能するかを理解するために、リンクされたページから恥知らずにコピーしたクイックスタートを次に示します。
irb> require 'rubygems'
irb> require 'geokit'
irb> a=Geokit::Geocoders::YahooGeocoder.geocode '140 Market St, San Francisco, CA'
irb> a.ll
=> 37.79363,-122.396116
irb> b=Geokit::Geocoders::YahooGeocoder.geocode '789 Geary St, San Francisco, CA'
irb> b.ll
=> 37.786217,-122.41619
irb> a.distance_to(b)
=> 1.21120007413626
irb> a.heading_to(b)
=> 244.959832435678
irb(main):006:0> c=a.midpoint_to(b) # what's halfway from a to b?
irb> c.ll
=> "37.7899239257175,-122.406153503469"
irb(main):008:0> d=c.endpoint(90,10) # what's 10 miles to the east of c?
irb> d.ll
=> "37.7897825005142,-122.223214776155"