Home > Ruby On Rails > GoogleMapでマッシュアップの練習(Rails編) #4

GoogleMapでマッシュアップの練習(Rails編) #4

今度はダミーの文字ではなくて実際にデータを取得しましょう。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 酒 肴
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.

Home > Ruby On Rails > GoogleMapでマッシュアップの練習(Rails編) #4

Search
Feeds

Page Top