にやにや製作:GoogleMapとGPSを自転車で使う

お気楽・ごくらく ( ・∀・)ニヤニヤ
     
製作 かるかる

GPSのウェイポイントを編集するツール FlashWayPoint

2008年12月26日 19時54分36秒 | Hacks
GPX形式のウェイポイントを出力

AS3+FlexでWayPoint編集ツールを作ってみた。
Tcx2Gpxと同じく入力はTCX,NMEA,GPXファイルに対応、出力するファイル形式は汎用のGPXです。

ブツはコチラ:
FlashWaypoint Ver0.1 GPSウェイポイント編集ツール
FlashWaypoint

Tips:
リサイクルBoxはウェイポイントをD&Dするとゴミ箱になり、ボタンを押すと戻ります。


※出力されるGPXファイルはウェイポイント情報のみです。
読み込んだファイル中にトラックデータやルートデータが存在しても出力ファイルには含まれません。
次のバージョンではルートの編集機能を付けてウェイポイント/ルートの編集ツールとして仕立てます。


------------------
今回初めて「リサイクルBox」をAS3で実装した。

Flexのボタンにドロップさせる方法

[ボタンコンポーネントとリストコンポーネントの違い]
リストコンポーネントならDropEnableをTrueにすることで、自動でドロップが受付可能になるがボタンにはそんなプロパティは存在しない。

1.ボタンにドロップ受け付け先を定義する
<mx:Button id="button_1" dragEnter="doDragEnter(event);" click="Button_Recycle();"/>

2.ドロップに対する反応を用意する
DataGridからドラッグしてきたitemに対してのみ反応させる
private function doDragEnter(event:DragEvent):void {
  // イベントオブジェクトからドロップターゲットコンポーネントを取得します。
  var dropTarget_Button:Button= Button(event.currentTarget);
  // ユーザーが、'items' フォ ーマット値で識別されるデータを
  // ドラッグしている場合のみドラッグを受け付けます。
  if (event.dragSource.hasFormat('items')) {
    DragManager.acceptDragDrop(dropTarget_Button);

    //WPTのリサイクル機構
    _WayPointTrash.push(event.dragSource.dataForFormat('items').toString());
  }
}

function中のDragManager.acceptDragDrop(dropTarget_Button);
を通過することができればドラッグプロキシの×が消える。→ドロップ可能
いにしえーたー


[リサイクル用配列の用意]
DataGridのitemをpush/popで積んだり吐いたりできるようArrayで配列を用意。

private var _WayPointTrash:Array = new Array();


[リサイクル操作]
単純にXMLデータをArrayにPush/Popさせることでゴミ箱機能が達成される。

private function Button_Recycle():void {
  if(_WayPointTrash.length<=0){
return; } var wpt:Object=_WayPointTrash.pop(); var waypoint:XML= XML(wpt); _WayPointData.addItem(waypoint); }

※対象のDataGridにdataProvider="{_WayPointData}"として定義されている。
※"ドラッグプロキシ":
マウスボタンを押しながら、ユーザーはマウスを Flex アプリケーション上で移動させます。
ドラッグの間、Flex には画像が表示されます。この画像が "ドラッグプロキシ"といわれます。


gooブログでソースが綺麗に表示できる機構が欲しい ('A`)

関連ページ:
Mac / LinuxでもOK Google Earthで3D心拍:Tcx2Gpxの紹介
PNG Icons & Icon Packs Download | IconsPedia - Free Icons:アイコンの入手先

GPSツール GMM2.exe アップデートVer1.0.0.15

2008年12月25日 21時11分17秒 | Hacks
Ver 1.0.0.15 (2008/12/25)

以下の修正
・Flickrへのupload中に「一括アップロード中」のダイアログが複数出現する
・WptオンリーのGPXをKML/KMZ化するとエラー
・Wpt情報のないGPXからwpt/rteを取ろうとしてエラー

---------------
ダウンロード:
正式版 2008/12/25 GMM2.exe Ver1.0.0.15 MD5:04c8f782d4d7a562eaf923961e267fc2
開発版 2008/10/15 GMM2.exe Ver1.0.0.15β MD5:3f6b548852f9bb3e6f54122bf21defbc
GMM2.exe ダウンロード用WEBページ

サポート:
GPSツール GMM2.exe サポート用ページ


Mac / LinuxでもOK Google Earthで3D心拍

2008年12月13日 15時29分01秒 | Hacks
Flash Player10を載せよう

置いてある場所:
GMM2まとめページ:
Tcx2Gpx Ver0.3α (TCX/NMEA to GPX)

3D心拍とは:
Google Earth上に移動時の心拍をカラーで3D表示をすること、Google Earthであらゆる方向から走行ルートと心拍の様子をグリグリ眺めることができます。
3D心拍


前回:GPSデータからGoogle Earth用KMLを出力するFlashツールのバージョンアップで
Tcx2Gpx Ver0.3からの追加機能となります。
3D心拍にチェックを入れて、KMLを保存する事で作成されます。
3D心拍対応V03a


必要なデータ:
心拍情報付きGPSデータ
今のところGarminのColorado/Oregonシリーズ、Edge305/705等のフィットネス対応GPSが出力するGPXTCXファイルがそれにあたります。

サンプル 3D心拍表現可能サンプルGPXファイル:
11.gpx 心拍 + (ケイデンス情報)
10月13日に知多半島の真ん中に存在する広域農道を自転車で走る企画「GPS知多半島広域農道・佐布里池~師崎」にて取得したGPSデータで機種はGarminのColorado300


C# to AS3
3D心拍機能は既にGMM2.exe(C#)で実装済みの機能のため、アルゴリズムや方法論やらを考えずにC# to AS3の移植だけで作成しました。
XMLの解析や構築に 完全にE4Xだけで行うつもりでしたが、処理速度に問題(ex.appendchild)があり一部Stringを使ったりして、C#のXPathを使う方法より退化している部分があります。
これだけ遅いとプロファイラ機能付きの Professionalバージョンを買っときゃ良かったと思い始めております。逆にプログラムの最適化を真剣に考えなくてはなりませんので、長年ドップリつかった富豪的プログラミングからの脱却に.....ウソ

--------------------
参考:
GPS & 心拍計で 「3D心拍Google Earth」
2008年9月14日 ツールド三河湖 Google Earth心拍
Coloradoで3D心拍 Google Earth
ニコニコ動画にはUpしないけど、NicoVisualEffectsを使った動画作成


GPSデータからGoogle Earth用KMLを出力するFlashツール

2008年12月10日 20時54分26秒 | Hacks
KML対応 Tcx2Gpx v0.2

前回のTcx2GpxにGoogle EarthGoogle マイマップに使えるKMLの出力を追加、ウェイポイントはKML上ではプレイスマークとして表示されます。
また複数のセグメントがあるデータに対応

3D心拍の対応は次に回した。


置いてある場所:
GMM2まとめページ:Tcx2Gpx Ver0.2α (TCX/NMEA to GPX)
tcx2gpx
リアルタイムでカラーを変えられます。


備忘録:Action Scriptで左ゼロ埋め(ゼロパディング)

KML用にColorPickerから取得した値を16進数の数値から文字列へ変換すると、先頭がゼロだと桁が合わなくなってしまう(ex."00ff22"が"ff22")ため、左0埋めを行って"00ff22"とする必要がある。

文字長が6とわかっているので、6桁になるまで左に"0"を追加....
ついでに、Google Earthのカラーの並びは"RGB"ではなく"BGR"なんで
並び替えプログラムを併せて用意
※KMLの色指定: Opacity+BGRの8桁(ex.緑透過なし:FF00FF00)

愚直に
private function Rgb2Bgr(color:uint):String{

  //まず左を0パディングして6桁にする
  var tmp:String=color.toString(16);
  while (tmp.length<6){
    tmp = "0" + tmp;
  }			
  
  //次にRGBからBGRへと並び替える
  var tmp2:String;		
  tmp2=tmp.substr(4,2);
  tmp2=tmp2+tmp.substr(2,2);
  tmp2=tmp2+tmp.substr(0,2);
  return tmp2;
}


備忘録:Flexでダイアログを作る

Flexでダイアログを作るにはTileWindowをどうたらするとのことで、
Adobeのhttp://examples.adobe.com/flex3/componentexplorer/explorer.htmlを見てつくってみるもうまくいかない。

そもそもプロジェクトに追加するmxmlファイルのタイプが、MXMLアプリケーション、MXMLモジュール、MXMLコンポーネントのどれにするかわからないので総当たりで作って試してみる。
結局MXMLコンポーネントを選び、ベースをダイアログであるTitleWindowにして作ればええらしい。

|          ゴロゴロゴロゴロ
|r'⌒X⌒X⌒X⌒X⌒X⌒ヽ ⊂゛⌒゛、∩
|ヽ__乂__乂__乂__乂__乂__ノ  ⊂(。Д。) ヘファヘファヘファ

GPS用 Flashツール・TCX/NMEAファイルをGPX変換する

2008年12月06日 14時36分26秒 | Hacks
高速動作 Tcx2Gpx

TCX/NMEA/GPX形式のGPSファイルをマップに表示 + GPX変換保存します。
Flash Player 10対応でしたらOSを問わずに動作するハズ。
動作報告お待ちしております。

物はコチラ http://www.k5.dion.ne.jp/~kulukulu/H20081206/Tcx2Gpx.html
まとめページ用リンク: Tcx2Gpx Ver0.1 (TCX/NMEA to GPX)
Tcx2Gpx

今回のツールはGPXlogcutの高速版でTCX形式の追加と、ウェイポイント内容の表示ができます。Flashで作るGPSのルートやウェイポイントを編集するツールのモジュールテストを流用して作成しました。

ちょうど先日、「Adobe AIRデベロッパーセンター記事」でFlash Maps APIを開発した方の記事が載ってサンプルソースがみたいとの需要を見込みまして、Flashからソースが閲覧できるようになっています。
サーバーにあんまし容量がないため(最大5MB)、ある程度経ちましたらソースだけ削除予定

ソースを見ることで、Flash Maps APIでのポリラインの引き方、マーカー、測地系の変換方法やTCXからGPXへの変換では、AS3がE4Xを持つことで実に楽に処理をしている様子がわかると思います。

ソース
------------
参考:
マピオンFlash Maps API + Adobe AIR による地図アプリケーション:Adobe AIRデベロッパーセンター記事
FlashをGoogle Sitesに表示
Flash10 ブラウザ上で動作するGPS ツール

おにゅーマシン考 Core i7が出てきたけど(゜ε゜)キニシナイ!!・EeeBox後継が続々

2008年12月03日 21時51分51秒 | Weblog
候補はC2D+GeForce9300/9400 or Atomマシン

1.C2D+ASUS P5N7A-VM

2.C2D+GIGABYTE GA-E7AUM-DS2H Rev.1.0

NVIDIA MCP7A(GeForce9300/9400)
CPUはE8400を廉価で譲ってくれるあてを頼りに、メモリは2~4GBを新調
その他ケースやHDDは使用中の物を流用、ちなみに今使ってる機械は転職した同僚がタダでくれた物で電源は燃えたため交換済み。
3Dゲーム類はしないので、VGA内蔵の物で十分のハズですが
折角なのでチップセットに最新の9300/9400積んだマザーを選んでみました。
ASUS/GIGAと、お店にある方を買えばいいかなという程度の差?



3.ASUS EeeBOX後継 Eee Box B204 / B206
ASUS Introduces World's Smallest Desktop PCs with HD Capability
デュアルATOMまでもう一押し!! 2xCPU機なら30xって名前かな?



4.インテル D945GCLF2後継
DVI出力が付いてWUXGA (Wide-UXGA:1920×1200) 対応したら


Atomマザーに交換なら
CPUにAtomを使った物でも今家にあるどの機械よりも快適だろうから
それてもいいかと考えると、OS込みで2.5万でOK
ただ、DVI出力が付いてWUXGA (Wide-UXGA:1920×1200) に対応したらという条件付き。


OSはXPをDSP版かアップグレード版で済まして予算4万以内、EeeBoxで5万台

      |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \
     ('A`)
     ノヽノヽ      買ったつもりならタダ
       くく

-------------
関連:
Celeron版 EeeBox US$240:これでもええ
ASUS、「Celeron」搭載のネットトップPC「Eee Box」を発売か
JATE認定機器一覧表:ASUSTEK COMPUTER INC. Eee Box B20「 」

新型BlueTrackワイヤレスマウスの電池は2週間持つ

2008年12月03日 06時58分56秒 | Weblog
使い方に依るのだろうけど

先月 おニューにしたマイクロソフトの青いLEDが付いたマウスExplorer Mini Mouse パールホワイトの電池がやっと切れた。
買ったときに付いてきたアルカリ電池で10日、手持ちのNiH充電池で2週間+α
元々電源スイッチが無いため、スイッチは切れない。
マウスによっては電池二本組で半年持つ物もあるそうですが、これまで半日持たない物を使っていたことからこれで十分、汎用の単三が使えるから気にならない。

CIMG7832

使ってる条件:
一日10時間使ったとして、NiH充電池1本で2週間、アルカリ電池で10日
使い方は日常の入力作業でゲームでの使用は全くありません。
何でもかんでもキーボードでやってしまう人の対極にある人なので、マウスの使用率は非常に高いです。

使ってみて:
スリープからの復帰にもたつくことは無く即座にモニタ上に動作が反映される、ドライバもlogicoolと比べて負荷もなく満足
宣伝文句にトラッキング性能が云々と宣伝されていますが、以前使っていたlogicoolのレーザーマウス「G7」に比べると劣ります。たとえば畳(い草、竹共に)の上では使えません。
また小さい割に高さがあるため手首や クリックする指に負担がかかります。
クリック感のないヌルヌルホイールは慣れました。

使用電池による動作時間の違い:
電池切れ直前に赤色のパイロットランプが点灯します。アルカリだと点灯してから1日以上持ったところニッケル水素充電池のeneloopだと赤色が点灯して1時間程で反応が無くなりました。
これは使っているeneloopが切れる直前まで出力を維持し続ける為だと考えられます。

充電池2個用意してローテーションすれば2週間*1000回だから1組で40年w

--------------
関連:
Explorer Mini Mouse パールホワイト
マウスを持つ手を暖かくする方法
AppleキーボードをWindowsで使う

依存症・RSSリーダーに依存して視野が狭くなったと感じる

2008年12月01日 21時26分37秒 | Hacks
RSS依存症

現在Googleリーダーには59箇所登録しており、そのうち自転車ブログが35、開発関係12、ニュースや天気予報等12です。最大80くらいまで増えて現在の登録数に落ち着きました。

Googleリーダーを使い始めてからというもの「RSSを配信していないページって何?」と思うようになり管理しているGoogle Sitesには強引に付けてたりもします。

そんなこんなで、新たに追加されるページはブログ中で紹介されたページにとどまっており、自分で新しいページを探すことが減って以前と比べよりいっそう視野が狭くなったな~と感じる今日この頃
とりあえず興味のある分野でも開拓しようと拡張用パイプを作ってみた。


いきなり社会復帰は無理

ちょっとでも新しいページの開拓にとRSSォィで発見できる仕組みを
Yahoo! pipesを使って用意、RSS経由で興味のある分野を受信できます。


仕組みと機能

Googleブログ検索やYahoo!ブログ検索結果をYahoo! Pipes経由でRSSに仕立て利用します。宣伝の為だけのブログや見たくない言葉をフィルターで濾し取る機能があります。


使い方

RSSを返すブログ検索サービスを使って元ネタを収集し用意したYahoo! PipesのURLボックスに入力するだけ。

---------------------------------
リハビリ手順

[1.元ネタの取得]

1.結果がRSSで返されるブログ検索サービスを選択する

RSSを出力するサービスとしては「Googleブログ検索」「Yahoo!ブログ検索」「Livedoorブログ検索」がお勧め。
以下の説明では、GoogleとYahoo!それぞれのブログ検索について説明します。
各種ブログ検索


[2.Googleブログ検索を利用して、RSSを取得する]

Googleブログ検索を利用して、自分用のRSSを吐いてもらいます。

2-1.「ブログ検索オプション」リンクを押します。
Googleブログ検索


2-2.検索したい用語の入力

検索オプションについては説明いりませんね?
必ず文中に存在する条件が「すべてのキーワードを含める」
どれかが入っている条件が「いずれかのキーワードを含める」
含まれた場合排除の条件が「キーワードを含めない」
Googleブログ検索2
上記の例では、「GPS」を必ず含んでおり、「登山」か「自転車」の単語が含まれているブログで、「スケート」を含まない物

※スケートのグランプリシリーズの略がGPSだそうで、スケートを排除条件に指定しました。

条件を設定したら、「ブログ検索」ボタンを押します。


2-3.投稿期間の選択

投稿期間を設定します。色々ありますが1週間を選ぶのが無難でしょう。
好きな範囲を選択して、次の2-4.へ
Googleブログ検索3


2-4.フィードの取得

最終的な結果を取得します。
左側にあるRSSリンクをコピーします。
Googleブログ検索での作業はここまで。


[3.Yahoo!ブログ検索を利用して、RSSを取得する]

Yahoo!ブログ検索を利用して、自分用のRSSを吐いてもらいます。

3-1.「検索オプション」リンクを押します。
Yahoo!ブログ検索


3-2.検索したい用語の入力

前述のGoogleと同じ条件を入れています。
Yahoo!ブログ検索2


3-3.投稿期間の選択

ここでも、1週間を選択しました。好きにしてください。
Yahoo!ブログ検索3


3-4.フィードの取得

更新期間の設定が済みましたら、RSSを取得します。
右上のRSSボタンからURLを取得します。
Yahoo!ブログ検索4
Yahoo!ブログ検索の作業ここまで。


[4.Yahoo! Pipesの設定]

GoogleとYahoo!から取得したフィード(RSSリンク)をYahoo! Pipesの「ブログ検索まとめ」に設定します。

4-1.「ブログ検索まとめ」のページを開く
使う1


4-2.フィードの入力

[2.Googleブログ検索を利用して、RSSを取得する]
[3.Yahoo!ブログ検索を利用して、RSSを取得する]で取得したURLを
受信1、受信2へ貼り付けます。※1項目に1URL
パイプ実行


4-3.動作確認
「Run Pipe」を押してListにエントリが並ぶことを確認します。


4-4.RSSリーダー用RSSフィード取得

動作確認後、右側の「Get as RSS」を取得します。
これが、上記手順でまとめられたRSSとなります。
パイプ経由RSS取得


[5.RSSリーダーへの登録]
パイプ経由RSS取得2リーダーに登録
おしまい。



[番外:フィルターTips]
スパムブログや見たくないキーワードをフィルタする

方法1.出来合いの入力ボックスを使って特定ドメインを排除する

削除URLとして用意されている入力ボックスに、排除したいドメインを入力します。
排除するURLは、Listに表示されているエントリのURLをコピーしてエデッター上で見ればわかります。わかるよね?
URLフィルタ追加3


方法2.ソースを弄って排除URLや特定テキストを含むエントリを排除する

FilterのRules項目が削除するパターンを記述する項目となります。
Rules横の「+」ボタンを押して削除ルールを追加してください。
赤い枠で囲まれた部分を参考にするとすぐに理解できると思います。
URLフィルタ追加1

排除したいドメインを探すには、前述のListを探るなど下の画像にあるように配信内容を見てみればすぐに解るでしょう。
URLフィルタ追加

クローンやソースをコピーして好きに改造してね。

---------------------------------

あとがき

検索結果でRSSが出力できる検索サイトを使ってみると結構
雑音(スパムブログ等)のフィルター具合が体感できます。
やはりGoogleは優秀ですね。

今回はリーダー用としてRSSを再構築しましたが、Google Sites上でガジェットを使って表示させたり、ブログにRSSをリスト表示できる機能があれば簡単にRSS集積サイトの出来上がり~

もともとGPSまとめサイト@2chモバイル板の「GPS関連インターネット口コミ」機能をGoogle Sites用に作成しようと、作ったパイプをRSSリーダーに適用できるよう変更した物が今回の元ネタです。

-------------------
参考:
Google Sites にRSS配信機能を付ける