- 2009-07-13 (月) 2:42
- Flash | WEB | javascript | 音楽
ちょっと前にも書いた気がするが、
最近は画像に、撮影した場所の緯度経度情報が埋め込める。
そんでもって、緯度経度の情報付きの画像を、
Flickrに保存しておくことができる。
というわけで、Flickrに位置情報付きの画像を置いておいて、
Flash+GoogleMaps上に展開とかしたいなーと思って調べてみたところ、
FlsahからFlickrに接続するためのas3flickrlibというのを発見。
しかしこのライブラリが長いこと更新されていない・・・。
というわけで、作りたいものの下調べがてら、
このライブラリで位置情報である、
ジオタグ付きの情報を取得できるようにするやり方を調べた。
Photos.as, PhotoSets.asの2つのファイル
(訂正)Photos.as, PhotoSets.as, MethodGroupHelper.asの3つのファイルを、
以下な感じで修正すれば、ジオタグを取得できる。
■ Photos.as
- private var _notes:Array;
- private var _tags:Array;
- private var _urls:Array;
- // okm add
- private var _latitude:String;
- private var _longitude:String;
- public function get latitude():String {
- return _latitude;
- }
- public function set latitude(value:String):void {
- _latitude = value;
- return;
- }
- public function get longitude():String {
- return _longitude;
- }
- public function set longitude(value:String):void {
- _longitude = value;
- return;
- }
■PhotoSets.as
- // okm add
- public function getPhotosExtras( photoset_id:String ):void {
- MethodGroupHelper.invokeMethod( _service, getPhotos_result,
- "flickr.photosets.getPhotos",
- false,
- new NameValuePair( "photoset_id", photoset_id ),
- new NameValuePair( "extras", "geo" )
- );
- }
extras にとりたい情報を適当に追加すれば、返してくれる情報も増える。
■MethodGroupHelper.as
- for each ( var p:XML in xml.photoset.photo ) {
- var photo:Photo = new Photo();
- photo.id = p.@id.toString();
- photo.secret = p.@secret.toString();
- photo.title = p.@title.toString();
- photo.server = parseInt( p.@server );
- // okm add
- photo.latitude = p.@latitude.toString();
- photo.longitude = p.@longitude.toString();
- photoSet.photos.push( photo );
- }
あとは、↓な感じで情報を取得すればOK.
- fls = new FlickrService("APIキー");
- photoSets = new PhotoSets(fls);
- fls.addEventListener(FlickrResultEvent.PHOTOSETS_GET_PHOTOS, GetPhptosComplete);
- photoSets.getPhotosExtras("SetsのID");
- 〜〜〜〜
- private function GetPhptosComplete(e:FlickrResultEvent):void{
- //photoSetの写真のタイトルとURLを配列に格納
- for(var i:uint; i <e.data.photoSet.photos.length ;i++){
- trace(e.data.photoSet.photos[i].title);
- trace(e.data.photoSet.photos[i].id);
- trace(e.data.photoSet.photos[i].latitude); // 緯度経度も取得可能
- trace(e.data.photoSet.photos[i].longitude); //
- }
- }
こんな感じで返してくれます。
- <?xml version="1.0" encoding="utf-8" ?>
- <rsp stat="ok">
- <photoset id="72157620666800332" primary="3666954753" owner="25111802@N08" ownername="----" page="1" per_page="500" perpage="500" pages="1" total="24">
- <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" />
- <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" />
- <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" />
- <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" />
- <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" />
- </photoset>
- </rsp>
次は、実際にFlashでGoogleMapsへの展開を挑戦予定!
Comments:0
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の緯度経度情報の取り方を調べた。 [...]


