- 2007-11-03 (Sat) 16:40
- Ruby On Rails , googlemap
今度はダミーの文字ではなくて実際にデータを取得しましょう。4travelの旅行記取得APIの仕様を調べたところ、緯度と経度から取得はできないようです。残念。終了。。。。。。。
というわけにもいかないので、何とか実現可能な方法を模索します。地名から旅行記は取得できるようですので地名を取得する方法を考えましょう。Google検索でこんな素晴らしい質問がヒットしました。僕も人力検索使おうかな。
人力検索はてな 緯度経度からだいだいの地名(○県○市くらいの精度で十分です)を得る方法を教えてください。
ここの回答No9の方が紹介されているサイトがこちら(URLは変更されてた。)
これで方針決定。以下のような2段階処理をすることにしよう。
- 緯度、経度から地名(都道府県、都市名)を取得
- その地名で旅行記を取得
まずは1つ目、地名を取得する処理をサーバ側で実装。これはmain_controller.rbのsearchメソッドを修正。ブラウザから送信されたx, yのパラメータを逆ジオコーディングのlon, latパラメータに代入してリクエスト送信でOK。とりあえず返ってきた文字列をそのまま表示するため@resXMLに全文字列を代入。
main_controller.rb
require 'net/http'
class MainController < ApplicationController
def index
end
def search
#HTTP通信設定
site = Net::HTTP.start('refits.cgk.affrc.go.jp')
#地名情報取得
response = site.get("/tsrv/jp/rgeocode.php?lon=#{params[:x]}&lat=#{params[:y]}")
@resXML = response.body #とりあえず全結果文字列を表示させる
site.finish
render(:layout => false)
end
def getNameOfPlace
#XML要素から都道府県名と都市名を取得する
end
end
resXMLを返信するためにviewを変更
app/views/main/search.rhtml
<%= @resXML %>
今度の修正はサーバ上のみなのでブラウザの再読み込みは必要なし。そのまま先ほどと同じように地図上をクリック。マジで動いた・・・・。すげぇ。

関連するエントリー GoogleMapでマッシュアップの練習 (Rails編) #4
トラックバック:No Trackbacks
- トラックバック URL
- http://blog.garden-place.jp/action.php?action=plugin&name=TrackBack&tb_id=16
- Listed below are links to weblogs that reference
- GoogleMapでマッシュアップの練習(Rails編) #4 from Web 酒 肴