More Related Content
Similar to 1時間で作るマッシュアップサービス(関西版)
Similar to 1時間で作るマッシュアップサービス(関西版) (20)
More from Yuichiro MASUI (13)
1時間で作るマッシュアップサービス(関西版)
- 78. require 'net/http'
require 'cgi'
require 'rexml/document'
class Onsen
attr_accessor :address, :name, :id
KEY = 'phe11375af71ba'
URL = 'http://jws.jalan.net/APICommon/OnsenSearch/V1/?'
def self.find(params)
results = []
get(params).elements.each('Results/Onsen') do |el|
results << Onsen.new(el.elements[quot;OnsenIDquot;].text, el.elements[quot;OnsenNamequot;].text, el.elements
[quot;OnsenAddressquot;].text)
end
results
end
def self.url(params)
params[:key] = KEY
URI.parse(URL+((params.map { |key,value| quot;#{key}=#{CGI::escape(value.to_s)}quot;}).join('&')))
end
def self.get(params)
REXML::Document.new(Net::HTTP.get(url(params)))
end
def initialize(id, name, address)
@id, @name, @address = id, name, address
end
end
- 83. irb> puts Onsen.find(:count => 10, :pref =>
'260000').map{|o| o.name}.join(',')
=> , , , , ,
, , , ,
- 88. $ rails onsen -d sqlite3
$ cd onsen
$ script/plugin install
svn://rubyforge.org/var/svn/ym4r/Plugins/GM/trunk/ym4r_gm
$ ./script/generate controller onsen index
- 90. class OnsenController < ApplicationController
def index
@map = GMap.new(quot;map_divquot;)
@map.control_init :large_map => true, :map_type => true
@map.center_zoom_init([35.400245,135.42572], 9)
end
end
- 102. irb> kyoto = Geocoding.get(‘ ’)
irb> kyoto.first.latlon
=> [34.985458, 135.757755]
- 107. class Onsen
def latlon
Geocoding.get(@address.gsub(/(
| | ).{1,5} /,'¥¥1')).first.latlon
end
end
- 110. class OnsenController < ApplicationController
def index
@map = GMap.new(quot;map_divquot;)
@map.control_init(:large_map => true, :map_type => true)
@map.center_zoom_init([35.400245,135.42572], 9)
return
Onsen.find(:count => 50, :pref => '260000').each do |o|
begin
marker = GMarker.new(
o.latlon, :title => o.name,
:info_window => render_to_string( :partial =>
'point', :locals => { :onsen => o })
)
@map.overlay_init(marker)
rescue
end
end
end
- 132. class Onsen
def photo
Onsen.get({
:appid=>'kyotoonsen',
:query=>@name.gsub(/ ¥(.*/,''),
:results => 1},
quot;http://api.searc........rch?quot;
).elements['/ResultSet/Result/Thumbnail/
Url'].text
end
end