Home > Flash | WEB | javascript | 音楽 > Flashで緯度経度情報つきの画像情報をFlickrから受け取る。

Flashで緯度経度情報つきの画像情報をFlickrから受け取る。

ちょっと前にも書いた気がするが、
最近は画像に、撮影した場所の緯度経度情報が埋め込める。
そんでもって、緯度経度の情報付きの画像を、
Flickrに保存しておくことができる。

というわけで、Flickrに位置情報付きの画像を置いておいて、
Flash+GoogleMaps上に展開とかしたいなーと思って調べてみたところ、
FlsahからFlickrに接続するためのas3flickrlibというのを発見。
しかしこのライブラリが長いこと更新されていない・・・。

というわけで、作りたいものの下調べがてら、
このライブラリで位置情報である、
ジオタグ付きの情報を取得できるようにするやり方を調べた。

Photos.as, PhotoSets.asの2つのファイル
(訂正)Photos.as, PhotoSets.as, MethodGroupHelper.asの3つのファイルを、
以下な感じで修正すれば、ジオタグを取得できる。

■ Photos.as

ACTIONSCRIPT:
  1. private var _notes:Array;
  2.         private var _tags:Array;
  3.         private var _urls:Array;
  4.        
  5.         // okm add
  6.         private var _latitude:String;
  7.         private var _longitude:String;
ACTIONSCRIPT:
  1. public function get latitude():String {
  2.             return _latitude;
  3.         }
  4.         public function set latitude(value:String):void {
  5.             _latitude = value;
  6.             return;
  7.         }
  8.        
  9.        
  10.         public function get longitude():String {
  11.             return _longitude;
  12.         }
  13.         public function set longitude(value:String):void {
  14.             _longitude = value;
  15.             return;
  16.         }

■PhotoSets.as

ACTIONSCRIPT:
  1. // okm add
  2.         public function getPhotosExtras( photoset_id:String ):void {
  3.             MethodGroupHelper.invokeMethod( _service, getPhotos_result,
  4.                                    "flickr.photosets.getPhotos",
  5.                                    false,
  6.                                    new NameValuePair( "photoset_id", photoset_id ),
  7.                                    new NameValuePair( "extras", "geo" )
  8.                                    );
  9.         }

extras にとりたい情報を適当に追加すれば、返してくれる情報も増える。

■MethodGroupHelper.as

ACTIONSCRIPT:
  1. for each ( var p:XML in xml.photoset.photo ) {
  2.                 var photo:Photo = new Photo();
  3.                 photo.id = p.@id.toString();
  4.                 photo.secret = p.@secret.toString();
  5.                 photo.title = p.@title.toString();
  6.                 photo.server = parseInt( p.@server );
  7.                
  8.                 // okm add
  9.                 photo.latitude = p.@latitude.toString();
  10.                 photo.longitude = p.@longitude.toString();
  11.                
  12.                 photoSet.photos.push( photo )
  13.             }

あとは、↓な感じで情報を取得すればOK.

ACTIONSCRIPT:
  1. fls = new FlickrService("APIキー");
  2. photoSets = new PhotoSets(fls);
  3. fls.addEventListener(FlickrResultEvent.PHOTOSETS_GET_PHOTOS, GetPhptosComplete);
  4. photoSets.getPhotosExtras("SetsのID");
  5. 〜〜〜〜
  6. private function GetPhptosComplete(e:FlickrResultEvent):void{
  7.     //photoSetの写真のタイトルとURLを配列に格納
  8.     for(var i:uint; i <e.data.photoSet.photos.length ;i++){
  9.         trace(e.data.photoSet.photos[i].title);
  10.         trace(e.data.photoSet.photos[i].id);
  11.         trace(e.data.photoSet.photos[i].latitude);     // 緯度経度も取得可能
  12.         trace(e.data.photoSet.photos[i].longitude)//
  13.     }
  14. }

こんな感じで返してくれます。

XML:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <rsp stat="ok">
  3. <photoset id="72157620666800332" primary="3666954753" owner="25111802@N08" ownername="----" page="1" per_page="500" perpage="500" pages="1" total="24">
  4.         <photo id="3666954753" secret="----" server="3541" farm="4" title="shimokita_0024" isprimary="1" latitude="35.665071" longitude="139.66531" accuracy="16" place_id="dtJZJhabCZm.78Qz9A" woeid="28528566" />
  5.         <photo id="3667761046" secret="----" server="3338" farm="4" title="shimokita_0023" isprimary="0" latitude="35.665002" longitude="139.665412" accuracy="16" place_id="dtJZJhabCZm.78Qz9A" woeid="28528566" />
  6.         <photo id="3666954587" secret="----" server="3323" farm="4" title="shimokita_0022" isprimary="0" latitude="35.663729" longitude="139.666517" accuracy="16" place_id="INaV6gKbCZlVrYnlFA" woeid="28528453" />
  7.         <photo id="3667760848" secret="----" server="2563" farm="3" title="shimokita_0020" isprimary="0" latitude="35.663106" longitude="139.667609" accuracy="16" place_id="INaV6gKbCZlVrYnlFA" woeid="28528453" />
  8.         <photo id="3667760770" secret="----" server="3300" farm="4" title="shimokita_0021" isprimary="0" latitude="35.662354" longitude="139.666976" accuracy="16" place_id="INaV6gKbCZlVrYnlFA" woeid="28528453" />
  9. </photoset>
  10. </rsp>

次は、実際にFlashでGoogleMapsへの展開を挑戦予定!

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://parpue.net/web/996/trackback
Listed below are links to weblogs that reference
Flashで緯度経度情報つきの画像情報をFlickrから受け取る。 from parpue.net
pingback from parpue.net - マッシュアップ地図アルバムを作ってみる[Flickr+GoogleMaps+Flash] 09-07-20 (月) 5:53

[...] ちょっと前にas3flickrlibを使ってFlickrの緯度経度情報の取り方を調べた。 [...]

Home > Flash | WEB | javascript | 音楽 > Flashで緯度経度情報つきの画像情報をFlickrから受け取る。

リンク
chocolataste-planner
millon

サーチ
Feeds
Meta
blog ranking ブログランキング・にほんブログ村へ
にほんブログ村 テクノラティのお気に入りに追加する

Return to page top