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

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

Flashアプリ Garmin GPS用POIツール 「ふれっくすポイ」

2009年03月30日 21時01分21秒 | Hacks
WayPointには登録上限が存在する

某自転車乗りからよく行くWayPointをCUSTOM POIにして常に表示したいと言われて、そんなツールを用意しました。
元となるデータがウェイポイントとの事で「PCX5形式WPT」でしたが、他に似たようなデータを持つ「GPX/TCX」「NMEA-0183」形式のファイルをついでにサポートしています。また「経度,緯度,地名,説明」順に並んでいるCSVファイルも読み込み可能です。
ふれっくすポイ
各ポイントは直接編集が可能です。
マウスでズルズルゴミ箱の「リサイクル」に放り込んだり、並べ替えたり...

CUSTOM POI対応機種
CUSTOM POIが使えるGarminのハンディ機についてはtkaにまとめがあります。


報告ヨロ
デバッグはGPSにコロラド(英)とWindows機で行いました。
CUSTOM POIが使えるGPSにはオートバイや廉価カーナビ用の「nuvi」にもあるそうですが、詳しいことは知りません。またMACで試す環境がないので、報告があるとうれしいです。


注意
日本語を含むファイルを「ふれっくすポイ」に読み込ませる場合は、あらかじめファイルの文字コードセットをUTF-8に変換してから読み込ませる必要があります。


他にもPOIツールはないの?

Garmin GPS用のPOIを作成するツールは
「POI-Generator2」
「GetLocInfo.exe」があります。
両者ともNET上に公開されているデータをソースとして、POIに変換しています。

「POI-Generator2」は、エクセルとVBAを使ったソフトで
Colorado300を買って直ぐに東海三県下の「マクドナルド」「コンビニ」POIを作成する際に使いました。
何でもWEB上にある元データの仕様変更が激しいそうでその度にバージョンアップしているそうです。

「GetLocInfo」は最近の開発ツールで、元データのソースがYahoo!電話帳の他ALPSLAB/iTownPageと複数あって単体で動きます。

今回公開する「ふれっくすポイ」は、ブラウザ上で動作する事が特徴となります。
前者2つとは違い、元データはGPX,CSV,WPTのファイルとなりますので
Googleマップ上のデータをGMaptoWptでGPXに変換して持ってきたり、
GMM2.exeで作ったGPSデータ等を流用してください。

変換項目:
地名 or GPS名をPOIポイント名に変換して、コメントをPOI説明に変換しています。
漢字が混ざっている場合は、チェックボックス「漢字ローマ字変換」をチェックすることで、GPS地名と説明部分がローマ字に変換されて出力されます。


GPSに転送するツール
出来上がったデータをGPSへ転送するために、Garminの「POI Loader」が必要です。
Windows/MACとそれぞれあるので使える方をそろえてください。
Windows用
MAC用
使い方はtkaを見てね。

※うちの環境:WindowsXP HOME SP3 + Garmin Colorado300だと
tkaの「Colorado シリーズ・Oregon シリーズに転送した場合に名称が空欄になる場合の対処法 」にある症状がでます。
また「POI Loader」は日本語フォルダ上にあるファイルを扱うことが出来ないようで、
別にc://poi//等、日本語を含まないフォルダにCSV/GPIファイルを入れています。

502495


WPT2POIツール「ふれっくすポイ」の機能

「ふれっくすポイ」はブラウザ上で動作するWEBアプリです。
Flash10が動作するブラウザでしたらOSを問いません。

入力にGPX,WPT,TCX,CSV(経度,緯度,地名,説明順のCSVファイル)
NMEA-0183(LOG,NMEA,dat)のデータを受け付けて
POIにコンバートしたCSVファイルを出力します。

出力後はGarmin純正の「POI Loader」を使ってそれぞれのGPSに転送したり、GPS用地図にマージしてください。

WEBアプリということでNET上に公開されているいろいろなAPIを使っています。
たとえば前回、AIRK2Rで使用したYahoo!のAPIを利用して漢字をローマ字に変換したり
緯度経度から住所を引っ張ってくるじお機能があります。
作ってみると漢字toローマ字変換は英語版GPSを使っている場合に必須ですね。


謝辞 & 「ふれっくすポイ」使用 WEB APIリスト

・地図表示「Flash Maps API
・漢字ローマ字変換「ルビ振り

アイコンの一部はGMM2.exe用にロボさんに作ってもらった物を流用してます。
WEBAPIについては、どのように使っているかソースを公開しながら解説でも。


不具合・放ってあること

1.たまに漢字ローマ字変換で変換しきれない文字が残ります。
2.漢字ローマ字変換は完璧ではありません、たとえば「千手千眼観音」とか「如意輪観音」等、難しい読みや漢数字が入る読みはよく間違えます。
3.漢字ローマ字変換は同期動作していません、手抜きです。
4.日本語を含むファイルを読み込む場合は、文字コードがUTF-8である必要があります。
文字化け読み違い


でドコにあるんよ?

GarminGPS用POI作成ツール:
ふれっくすポイ←ココ
flexpoi

正式版 GPSツール GMM2.exe Ver2.0.0.0

2009年03月19日 21時22分48秒 | GMM2 サポートと掲示板
メジャーバージョンアップ 2.0系列(2009/3/20)

・Googleマップ/Yahoo!地図に加え
国土地理院地形図を利用できるようになったことで、登山用途にも利用できるようになりました。

・正式に Windows Vista/Windows 7βに対応しました。

詳しくは:GPSツール GMM2.exe まとめサイト

[国土地理院地形図対応]
GSI国土地理院地図
ポイント取得用に国土地理院地形図の1/25000はもちろん、より細かい 1/6000~1/1000000の縮尺の利用が可能です。

[Windows Vista/ Windows 7β対応 ]※1
Windows 7-32bit

---------------
ダウンロード:
・正式版 2009年03月20日 GMM2.exe Ver 2.0.0.0
MD5:
GMM2.exe ダウンロード用WEBページ

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

---------------
変更内容:
version 2.0.0.0β to 2.0.0.0 正式版
・追加 Google Earth用 国土地理院地形図レイヤーの作成機能
・改良 Windows Vista/Windows 7βに対応
・改良 Googleマップの仕様変更による変更
・改良 Yahoo!地図の名称を取れるように戻した。
・改良 GMapToGPX の出力に対応
・修正 PCX形式trk/wpt/rteの時間が表示されない問題
・修正 ポイント取得においてリターンを押してもポイントが取得されない問題
・修正「試し表示」において、マウスクリックするとエラー表示される問題

------------------
サポートツール:
GPSログに対して FlashやAIRで動作する OSを選ばないツールを以下にて公開

Tcx2Gpx Ver0.3 (GPX/TCX/NMEA to GPX/KML)
TCX/NEMA/GPXファイルをGPX / KML形式のファイルに変換するツール
心拍をGoogle Earth上に3Dで表示する3D心拍も作成可能

FlashWaypoint
ウェイポイント編集ツール、GPSトラックに等間隔でウェイポイントを追加する等

Alps2Gpx
AIR製のALPSLAB routeで作成中のルートをコピーするツール。3000ポイント以上のポイントを取得できる

GPXlogcut Ver2.2 (NMEA to GPX)
GPX/NMEAのデータをカットしまくるツール

GMaptoWaypoint  (コメント地点をウェイポイントに変換)
Google乗り換え案内のルートを取得するブックマークレット「GMaptoGPX」の分岐案内をウェイポイントに変換するツール

追加予定:
間引きツール:
GPSトラック編集ツール:

---------------
備考
※1:64Bit版OSの対応について
GPS通信機能については64Bit版OSに対応していません。
「Garmin Communicator plug in 最新版」が64bit版IEに対応していないためです。
USBマスストレージモード機種は問題ありません。

爆熱チップセットP5N7A-VM・ミスタードーナツ小さくなって形もorz....

2009年03月18日 23時23分25秒 | Weblog
小さくなったドーナツだと食べた気がしない

使っている機械の中身を取っ替えた。

土曜の昼過ぎから6時間かけてダラダラと移し替え、マザー、HDD、メモリーと新調して電源とケース、DVDを流用、CPUは組み立てを見に来た自転車乗りからのもらい物

CPUをくれた自転車乗りと、お茶だ休憩といいながらお菓子をぱくつく
秋にミスタードーナツのサイズが小さくなって形も歪になったとか話しながらダラダラ組む。
CIMG7881

リテールのCPUファンは付けにくいとか話しながら、コーヒー
CIMG7887

ケースも貰い物 e-machines
掃除をしては、茶菓子にクッキー
CIMG7883CIMG7886

電源LEDの規格が違っており挿せない...古いのかな?
白い奴はASUSマザーの付属品で付いてきたQ-Connector
CIMG7888


組み上がり、最初の写真から3時間半経過
そもそもドライブはSATAのHDD一台と普段使わないEIDEのDVDしか付けないためケーブル余りまくり。
電源はSeasonicの350W程度の物、詳しい型番は忘れた。
CIMG7890
今回のマザーにはUSBが12ポート!!付いておりUSBポート不足が一気に解消

なんでもファンが余計に回ってるそうで
麻婆豆腐風みそ煮込みを食べながら、BIOSを弄ってファンコントロール
1650回転から840回転へ
Fan
※表示はSpeedFan 4.34


WindowsXP HomeではMS純正仮想環境が動作しない
     |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \
     ('A`)
     ノヽノヽ Windows7で動作確認を取れば、VistaでもOKとちゃう?
       くく

OSはDSP版のXP HOME-SP3

余りまくる資源で動かそうと思っていたVirtual-PCはXP Professional以上でしかインストールできない事に買ってから知った。
MS製に代わって仮想環境はSunが公開しているVirtual-BOXを利用することでWindows Homeでも問題なく動作


2/20 チップセット70度まで上がる

とココまでは、1月の話で書いたまま放っておいた。
70度
負荷をかけると70度近くまで逝ってしまったり、新調したWDのHDDがどうにも振動が激しく筐体が揺れるため先日届いた以下の部品を追加


1.チップセット用ファン付きヒートシンク
CIMG7905

2.HDD防振マウンター

効果はそれぞれ

あんまり期待していなかった「HDD防振マウンター」は効果大、振動は無くなった。
画像にあるチップセット用ファン付きヒートシンクは全く効果がない & うるさいですぐに取り外し。


3/14 まともに冷えるファンを付ける

せっかく買ったチップセット用ファン付きヒートシンクも役に立たず、
3月になり室温も上がってくると負荷をかける操作に躊躇するようになる。
70度

チップセットヒートシンクを一度外してグリス付け直し&
ケースファンをチップセットヒートシンクに両面テープで固定して
CIMG7943

20度下がって目的達成
負荷かけても温度はさほど変化がないため通常状態のスナップショット
(※表示はSpeedFan 4.37:バージョンアップでGPUの温度が表示されるようになった。)
チップセットが十分冷えるようになりファンの無駄回りもなくなって静音化が実現した。

と思って使ってたが.....
Windowsの中でOSを動作させるsunの仮想環境「VirtualBox」を使うと

ホントかウソかCore温度が84度!!
84
おまけに、VirtualBoxを実行するとSpeedFanの表示から、CPU温度やファン情報が表示されなくなる。
しょうがないので、マザーボードの付属ソフトとしてついてきた「PC ProveII」を実行(緑の奴)


3/17 バージョンアップで負荷軽減?

実際の所、本当にCore温度があれだけ高くなっているか不明の中
VirtualBoxのバージョンが上がっていたので、アップデートすると
30度下がった!!
54

正確な温度が知りたい......



構成:
マザー:P5N7A-VM (NVIDIA MCP7A GeForce9300)
CPU:C2D8400(3G)
メモリ:4G(3.25G認識、残りはGavotte Ramdiskで500MB利用)
HDD:WDの650Gx1
電源:Seasonic350W
ファン:CPUx1、チップセットx1、ケースファン無し

たまたまアウトレット価格で安く手に入ったP5N7A-VMですが、候補にしていたGIGAのGA-E7AUM-DS2Hはメモリが4G搭載で認識2.5Gだそうなのでこっちでよかったみたい。
夏に向けて窒息ケースにケースファン増設を検討中

Yahoo!WEBサービスを使ってみたまとめ

2009年03月11日 21時31分25秒 | Hacks
Webサービス事始め「漢字かな交じり文」から「ローマ字」に変換するAIRアプリを作成

WEBサービスに関していままで地図などを一方的に利用するだけで、
「WEBサービスに対して何かを送って返ってきた返事を元に何かする」といった
キャッチボール的なプログラムを作ったのは初めて(Flash/Flex/AIR)

今回は先日発見したYahoo! Web APIの「テキスト解析Web API」の「ルビ振り」機能を試してみた。
これを契機として「ローカルサーチ」やALPSLABが提供している「標高API」を利用してGPS対応マッピングツールとしてのGMM2.exeの機能強化に生かせればなと。

目的はWindows用プログラム上にWEBAPIを組み込むための事前調査です。
利用するYahoo! Web APIはレスポンスが「XML」「PHPserialize」「JSONP」と選べるそうなので、「XML」を処理するに使っている言語で一番XMLの扱いが楽なActionScriptとFlexの組み合わせで作るAIRアプリで試すことにしました。


1.アプリケーションIDの登録

「アプリケーションを特定するもの」ということでアプリケーション毎に必要
開発者を特定するための物じゃないのね。
アプリケーションIDの登録

アプリケーションIDの登録
「Yahoo! JAPAN ID」を使ってログイン後、アプリケーションIDの登録を行う
記述した内容は、サイト(アプリケーション名)にサイト(アプリケーション)の説明

一度内容確認が表示されて改めて「登録」を押す事になるが全然反応ない。

反応がない状態で、入力した内容をコピーしてほっておいたら、「こんな画面」
どうにも違うだろってことで、再度やり直してもダメx2回だったため
真っ白しろすけ
しばらくしてから取得
ID登録完了


2.AIRの準備

「1.アプリケーションIDの登録」を待ってる間ズンズン進める。

AIRでやることは、漢字を入力するフォームの準備とWEB APIを送受信する機構


2-1.フォームの準備とクレジット表示

変換したい文字列を入力するTextInputと「変換」ボタン、変換後の文字列を表示するためのTextAreaを用意した。あと クレジットの表示にあるように「Yahoo! JAPANの提供するAPIを利用するすべてのサイトやアプリケーションには、クレジットを表示する必要があります。」となっていることから、同ページに用意されているGIFイメージをボタンに貼り付けた。

こんな感じ
Form作成

2-2.フォームイベント処理

変換ボタンを押すと所定のイベント処理を行うよう設定

普段VisualStudio(以降VS)使ってるから思うのだけれども、FlexBuilderでフォームに対するイベントハンドラを定義するのって面倒ね、VSならダブルクリック一発で定義関数を自動作成してくれるから.....

この部分
イベント定義


2-3.イベント処理の中身

漢字文章の TextInputに入ってる文字列を Yahoo! WEB APIを使って、
「漢字かな交じり文」から「ローマ字」へ変換する

adobeが公開しているURL 要求とネットワーキングを読むと
Flexでネットワークの通信を行う方法には以下の3つがあり

* URLLoaderを利用
* HTTPServiceコンポーネントを利用
* Socket

今回はActionScriptで書きたいということで、URLLoaderを利用する。
(HTTPServiceはFlexに癒着している気がして使う気にならない、Socketは今回の目的にはおおげさ)

サンプルソースとして参考になったのは、
ITProのFlex 2.0でリッチなWebアプリを作ろう
ココでのサンプルをほぼ全部流用して、目的のYahoo! Web APIを実行するプログラムを組んだ。
URLLoaderのラッパー関数は、こりゃええと思った。これからも使わせてもらうつもり。

2-4.ソース抜粋
private function execURLLoader_02():void
{
  var req:URLRequest = new URLRequest();
  req.url = "http://jlp.yahooapis.jp/FuriganaService/V1/furigana";
  req.method = URLRequestMethod.GET;
			
  var uv:URLVariables = new URLVariables();
  uv.appid="アプリケーションID";
  //uv.grade="1";	//無指定の場合、ひらがなを含むテキストにふりがなを付ける
  req.data = uv;
  uv.sentence=TextInput_kanji.text;

  doLoad(req); //URLLoaderのラッパー関数
}

// URLLoaderのラッパー関数 サンプルそのまま
private function doLoad(req:URLRequest):void
{
  var loader:URLLoader = new URLLoader();
  loader.addEventListener(Event.COMPLETE, onComplete);
  loader.addEventListener(Event.OPEN, onOpen);
  loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHttpStatus);
  loader.addEventListener(ProgressEvent.PROGRESS, onProgress);
  loader.addEventListener(IOErrorEvent.IO_ERROR, onIoError);
  loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
  loader.load(req);
}

// レスポンスデータの受信完了
private function onComplete(e:Event):void
{		
  var loader:URLLoader = e.currentTarget as URLLoader;
  var responseXML:XML = new XML(loader.data);
  
  //フォームに結果 アルファベットあり
  TextArea_roman.text=toRoman2(responseXML);
}

//返事からローマ字部分を抜き出し
private function toRoman2(responseXML:XML):String
{
  //namespace設定 単純な方法
  namespace ns = "urn:yahoo:jp:jlp:FuriganaService";
  use namespace ns;
  //namespace設定方法2		
  //namespace yahoo = "urn:yahoo:jp:jlp:FuriganaService";

  var result:String="";

  for each (var Result:XML in responseXML.Result.WordList.Word) {
    var Surface:String=Result.Surface.text(); 
    var Roman:String=Result.Roman.text(); 

  //アルファベットや句読点はRomanには入らない
  //Surfaceには入る
    if(Roman.length==0){
      Roman=Surface;
      Roman=Roman.replace(/[。、・※/]/,""); //正規表現で記号等を削除(全部ではない)
    }				
    result=result+Roman;
  }
  return result;
}
と大体こんな感じ
もうちょっと正規表現部分に全角数字や記号(→)等の処理を追加すれば完全な「漢字かな交じり文」から「ローマ字」変換として利用できる。いらんけど。

今回の目的は.NET上で動作するGMM2.exeに組み込むために
Yahoo! WEB APIがどのように動くかわかればよいので、ここまでです。
(.NET上に※漢字→ローマ字変換は存在しないが、全角数字や記号→半角変換用関数は存在)

できあがり
実行画面

4.公開
ソースの大部分はITProのFlex 2.0でリッチなWebアプリを作ろうを改変して使っています。

AIRアプリ:AIRK2R「AIRK2R.air
ソース:AIRK2R「AIRK2Rのソース

5.まとめ

AS3では「URLLoader」とそれに連なる「URLRequest」を使えばOK

------------------------------
参考:
Flex 2.0でリッチなWebアプリを作ろう:ITPro連載 中垣 茂氏
Yahoo!デベロッパーネットワークYahoo!Japan
Yahooの新サービス「かな漢字変換Webサービス」を試してみたよPHP,MySQL,Flexな日々+イラストとか
日本語形態素解析って読みたくないようなタイトルだけど役に立ちそうなので利用する

日本語形態素解析って読みたくないようなタイトルだけど役に立ちそうなので利用する

2009年03月10日 00時06分17秒 | Weblog
KAKASIやらNAMAZUくらいしか...

Yahoo! JAPANの技術者やサービス担当者が提供中のサービスついて語る「Yahoo! JAPAN Tech Blog」、今日のお題は日本語係り受け解析APIとマッシュアップ
日本語形態素解析といわれても「品詞がどうたら~」としか思い当たらないのですが、まじめに最後まで読んでリンク先をあたってみると、提供されているサービスの「テキスト解析Web API」に「ルビ振り」を発見

これを使えば「漢字」が「ローマ字」で返ってくる。


長年のイヤが解消されるかも?

現在、GPSツールのGMM2.exeでGPS用にウェイポイントを作成しようとすると
同じ地点を意味する「地名」と「ウェイポイント」を別々に入力する必要があります。

「地名」は人が理解するポイント名
「ウェイポイント」はGPSが理解するポイント名

2度入力するのは面倒なので コピーボタン「>」を用意して、「地名」を「ウェイポイント」として利用できるようにしているのですが、
英語版GPS用にはウェイポイントをローマ字で用意する必要があって、そのままでは使えない。
日本語形態素解析

コレは面倒!!
同じ地点を別々に打ち込むのは精神的にイヤ
さらに私は「カナ打ち」の為、ローマ字で入力することはかな~りイレギュラー

出来るならボタン一発で「地名からウェイポイント」へローマ字変換したい。

というわけで、Yahoo!のテキスト解析Web APIを使った「漢字toローマ字変換」を考えています。
次回リリースは3/20

桜餅を持って梅見・氷砂糖屋さんの南濃梅園

2009年03月01日 10時45分10秒 | 自転車
桜餅6個、草餅2個

前の年:老舗氷砂糖メーカーが栽培している梅園へに引き続き南濃梅園

コース:
尾張大橋→立田大橋→東海大橋→今尾商店街で餅確保→今尾橋→南濃梅園
→福岡大橋→木曽三川公園→尾張大橋

国道一号線・尾張大橋を始点として主に堤防道路を行くダラダラルート
花粉よりもブンブン飛び回るムシに邪魔される。
CIMG7913

東海大橋でおにぎり1つを食べ
CIMG7919

目的地の南濃梅園、根本に祠のあるケヤキだかエノキが目印
梅は去年より10日も前にもかかわらず盛りを過ぎていた。
CIMG7929


ALPSLAB route:
南濃梅園・尾張大橋からくるっと一周

Googleマイマップ(Google Earth用リンク在り):
南濃梅園

コロラドの画面が暗いとか言われてるので写真を撮ってみた(バックライト無し)
GPSの固定に自転車用純正マウント+輪ゴム
半透明のシリコンバンド(800円)を無くしてから25本75円の輪ゴムで固定
CIMG7925