Mais conteúdo relacionado
Semelhante a OSC2007-niigata - mashup (20)
Mais de Yuichiro MASUI (13)
OSC2007-niigata - mashup
- 77. 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
- 82. irb> puts Onsen.find(:count => 10, :pref =>
'170000').map{|o| o.name}.join(',')
=> , , , , , ,
, , , ( )
- 87. $ 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
- 89. class OnsenController < ApplicationController
def index
@map = GMap.new(quot;map_divquot;)
@map.control_init :large_map => true, :map_type => true
@map.center_zoom_init([37.60988,138.872681], 10)
end
end
- 101. irb> nigata = Geocoding.get(‘ ’)
irb> nigata.first.latlon
=> [37.912016, 139.061847]
- 106. class Onsen
def latlon
Geocoding.get(@address.gsub(/(
| | ).{1,5} /,'¥¥1')).first.latlon
end
end
- 109. class OnsenController < ApplicationController
def index
@map = GMap.new(quot;map_divquot;)
@map.control_init(:large_map => true, :map_type => true)
@map.center_zoom_init([37.60988,138.872681], 8)
return
Onsen.find(:count => 30, :pref => '170000').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
- 131. class Onsen
def photo
Onsen.get({
:appid=>'onsen',
:query=>@name.gsub(/ ¥(.*/,''),
:results => 1},
quot;http://api.searc........rch?quot;
).elements['/ResultSet/Result/Thumbnail/
Url'].text
end
end