Show
Ignore:
Timestamp:
06/09/09 20:16:06 (5 years ago)
Author:
kp
Message:

写真プラグイン(詳細表示)ファーストリリース

Files:
1 copied

Legend:

Unmodified
Added
Removed
  • platform/tdiary/plugin/image_detail.rb

    r33730 r33862  
    22#  
    33# 概要: 
    4 # 画像にGPSによる位置情報が含まれている場合は、対応する地図へのリンクを生成する。 
     4#  
    55# 
    66# 使い方: 
     
    1212 
    1313=begin ChangeLog 
    14 2009-06-01 kp 
     142009-06-03 kp 
    1515  * first version 
    16   * fork from image_gps.rb 
     16  * fork from image_gps2.rb 
    1717=end 
    1818 
     
    4848  exif = ExifParser.new("#{@image_dir}/#{image}".untaint) rescue nil 
    4949   
    50   datum = nil 
     50  google = "http://maps.google.co.jp" 
    5151 
    5252  if exif 
    53     if @conf['image_gps.add_info'] 
    54       alt += ' '+exif['Model'].to_s if exif.tag?('Model') 
    55       alt += ' '+exif['FocalLength'].to_s if exif.tag?('FocalLength') 
    56       alt += ' '+exif['ExposureTime'].to_s if exif.tag?('ExposureTime') 
    57       alt += ' '+exif['FNumber'].to_s if exif.tag?('FNumber') 
    58     end 
     53    #GPS Info 
    5954    begin 
    6055      lat = exif['GPSLatitude'].value 
     
    6560      lon = -lon if exif['GPSLongitudeRef'].value == 'W' 
    6661      datum = exif['GPSMapDatum'].value if exif.tag?('GPSMapDatum') 
     62      lat,lon = tky2wgs(lat,lon) if datum == 'TOKYO' 
    6763    rescue 
    6864      lat = nil 
    6965    end 
    70   end 
    71  
    72   unless lat.nil? 
    73     lat,lon = tky2wgs(lat,lon) if datum == 'TOKYO' 
     66    detail = "<ul>" 
     67    detail += "<li>#{exif['Model'].to_s}" if exif.tag?('Model') 
     68    detail += "<li>焦点距離:#{exif['FocalLength'].to_s}" if exif.tag?('FocalLength') 
     69    detail += "<li>F値:#{exif['FNumber'].to_s}" if exif.tag?('FNumber') 
     70    detail += "<li>露出時間:#{exif['ExposureTime'].to_s}" if exif.tag?('ExposureTime') 
     71    detail += "<li>露出補正:#{exif['ExposureBiasValue'].to_s}" if exif.tag?('ExposureBiasValue') 
     72    unless lat.nil? 
     73      img_map = %Q["http://maps.google.com/staticmap?format=gif&amp;] 
     74      img_map += %Q[center=#{lat},#{lon}&amp;zoom=14&amp;size=200x200&amp;markers=#{lat},#{lon}&amp;] 
     75      img_map += %Q[key=#{@conf['image_gps.google_maps_api_key']}&amp;sensor=false"] 
     76      detail += %Q[<li><a href="#{google}/maps?q=#{lat},#{lon}">] 
     77      detail += "#{exif['GPSLatitude'].to_s},#{exif['GPSLatitudeRef'].value}" 
     78      detail += " #{exif['GPSLongitude'].to_s},#{exif['GPSLongitudeRef'].value}" 
     79      detail += %Q[<img class="map" src=#{img_map}></a>] 
     80    end 
     81    detail += "</ul>" 
    7482  end 
    7583 
     
    7886   
    7987  #static map 
    80   unless lat.nil? 
    81     img_map = %Q["http://maps.google.com/staticmap?format=gif&amp;] 
    82     img_map += %Q[center=#{lat},#{lon}&amp;zoom=14&amp;size=200x200&amp;markers=#{lat},#{lon}&amp;] 
    83     img_map += %Q[key=#{@conf['image_gps.google_maps_api_key']}&amp;sensor=false"] 
    84   else 
    85     img_map = '' 
    86   end 
    87  
    8888  url  = '' 
    8989  if @conf.mobile_agent? 
     
    9292    url += %Q[</a>] unless lat.nil? 
    9393  else 
     94    url += %Q[<div class="photo_detail">#{alt}] if detail 
    9495    url += %Q[<a href="#{@image_url}/#{image}">] 
    9596    url += thumbnail ? img_t : img 
    96     url += %Q[<img class="map" src=#{img_map} border="0">] unless lat.nil? 
    9797    url +=%Q[</a>] 
     98    url += %Q[#{detail}</div>] if detail 
    9899  end 
    99100  url 
    100101end 
    101  
    102102add_header_proc do 
    103103  if @mode !~ /conf$/ and not bot? then 
    104104    <<-HTML 
    105     <style type="text/css"><!-- 
    106       img.map{ 
    107         position:fixed; 
    108         top:30px; 
    109         left:30px; 
    110         display:none; 
    111         outline:5px; 
    112         outline-style:solid; 
    113         outline-color:gray; 
    114       } 
    115       a:hover{ 
    116         position:relative; 
    117       } 
    118       a:hover img.map{ 
    119         display:block; 
    120       } 
    121     --></style> 
     105      <style type="text/css"><!-- 
     106        img.map{ 
     107          display:none; 
     108          position:absolute; 
     109          border:none; 
     110        } 
     111        a:hover img.map{ 
     112          display:inline; 
     113        } 
     114      --></style> 
    122115    HTML 
    123116  else