Overview | Maps Static API | Google Developersがでたので早速簡単ツールをつくってみた[ruby][google][map][mobile]
# #GoogleMapsの静的画像バージョンのURLを表現するクラス #http://code.google.com/apis/maps/documentation/staticmaps/ # class Google class Map class Static PKG_VERSION = '1.0.0' # #取得URLとクエリを保持する変数 # STATIC_MAP_URL = 'http://maps.google.com/staticmap?' def initialize(latitude,longitude,api_key,settings = {},markers = []) raise ArgumentError.new('latitude mast be found') unless latitude raise ArgumentError.new('longitude mast be found') unless longitude raise ArgumentError.new('api_key mast be found') unless api_key @query = '' #緯度経度 @query = STATIC_MAP_URL + "center=#{latitude.to_f},#{longitude.to_f}" #幅 settings['w'] = (settings['w'].to_i <= 0 or settings['w'].to_i > 512 ) ? 256 : settings['w'].to_i #高さ settings['h'] = (settings['h'].to_i <= 0 or settings['h'].to_i > 512 ) ? 256 : settings['h'].to_i #拡大度 settings['z'] = (settings['z'].to_i < 0 ) ? 12 : settings['z'].to_i #地図タイプ settings['t'] = settings['t'] == 'mobile' ? 'mobile' : 'roadmap' @query += "&size=#{settings['w']}x#{settings['h']}" @query += "&zoom=#{settings['z']}" @query += "&maptype=#{settings['t']}" m = Array.new markers.each do |marker| next if not marker['lat'] or not marker['lng'] marker['c'] ||= 'red' marker['a'] ||= 'a' m << "#{marker['lat']},#{marker['lng']},#{marker['c']}#{marker['a']}" end @query += "&markers=#{m.join('|')}" unless m.empty? @query += "&key=#{api_key}" end def to_s @query end end end end if __FILE__ == $0 API_KEY = 'ABQIAAAA5YO-d6twBtFndXhSuT971BRI5v_oOVCK8OEty_LVcoaigmv-phSIn8RdMSeyS0dLwzf45TPOvtWcKA' markers = [ {'lat' => 35.707701,'lng' => 139.761787,'c' => 'red' , 'a' => 'a'}, {'lat' => 35.706847,'lng' => 139.762618,'c' => 'blue' , 'a' => 'b'}, {'lat' => 35.706764,'lng' => 139.762515,'c' => 'green', 'a' => 'c'}, ] puts "<html><head></head><body>\n" print "<img src='" # print Google::Map::Static.new(35.707215,139.762162,API_KEY,{'w' => 512,'h' => 512,'z'=> 18},markers) print Google::Map::Static.new(35.707215,139.762162,API_KEY,{'w' => 512,'h' => 512,'z'=> 18,'t' => 'mobile'},markers) # print Google::Map::Static.new(35.707215,139.762162,API_KEY) print "'/><br />\n" puts "</body>" end
デモ:http://gmap.zeg.la/
ソース:http://gmap.zeg.la/google_map_static.rb
gemパッケージ:http://gmap.zeg.la/googlemapstatic-0.0.1.gem
携帯でGoogleMapを手軽に表示するPHPクラス - アシアルブログがあったからrubyで書いてみました[ruby][web][rails] - d.hatena.zeg.laで述べた非公式版のAPI
http://maps.google.com/mapprint
と比較すると
1.API_KEYが必須
2.画像タイプが選択できない(image/gifのみ)
3.マーカーの文字,色を明示的に選択できる
4.これはよくわからないのですが地図タイプに
'mobile' or 'roadmap'が選択できるみたいです
といったところでしょうか?