2009年11月 のアーカイブ

「Google Maps API」と「GAE/P」の開発

2009年11月21日 土曜日

[ GAE Google App Engine ][ Phthon ][ Google Bigtable ][ Google Maps API ]
[ Google AJAX API ]
万歩計MAP作成にあたって、
そのほかに、つまづいたところを、以下にざっと。
■開発環境でのMapKEYについて
Google Maps APIを仕様するにあたって、
MapKEYの申請が必要になる。
当初、「http://manpokeimap.appspot.com/」で、
MapKeyを申請していたが、
http://localhost:8080 でKeyを取得すれば、GAE/Pの開発環境で
APIが利用できることが分かった。
アップロードの時には、KEYを変更することを忘れてはならない。
■ツールについて
Code Playground
のサンプルが非常に役に立った。
ソースを書きかえて、動作を確認できるのがうれしい。
ただ、GAEとの連携確認はできないよね。当然。
グーグルのJavaScriptツール集大成「Google Closure Tools」という記事より、
Google Closure Tools
というものも最近公開されたようだ。
今後、こういったものも利用すれば、
開発の効率は上がるかもしれない。
このほかに
今回、
Google Maps API デモ ギャラリーも役に立った。
JavaScriptであれば、ブラウザでソースがのぞけるので、
参考にしやすい。
■残念に思う点。
ルート表示が車でのルートになっているようだ。
徒歩表示に変更できることは確認した。
できるだけ早く対処する予定。
箱根駅伝(往路)コースを作ったけど
東名高速走ってるよ・・・。
細かいカスタマイズがイマイチ・・・。
日時は、他のアプリ同様、
UTC表示のままである。
私がつくったアプリ↓
協調型意思決定支援システム「○ 賛否両論 ×(ベータ版)」
http://sanpiryoron.appspot.com/

協調型プロジェクトタスク管理ツール「キャッチ&リリース(ベータ版)」
http://ctchandrls.appspot.com/

GoogleデータサービスAuthSub API利用サンプルアプリ
万歩計MAP

DAYS 16 AJAXとGAEの分かれ道

2009年11月20日 金曜日

[ GAE Google App Engine ][ Python ][ Google Bigtable ][ Google Maps API ]
[ Google AJAX API ]
万歩計MAP
コースを作成する時ルートを表示するのは、AJAX、
スタート地点と、ゴール地点をBigtableに保存する時は、GAEが動く。
http://code.google.com/apis/ajax/playground/#map_directions_advanced
をコピーしただけの状態であれば、
FORMには「onsubmit」が使われていたが、
Javascriptの動作と、Bigtableに保存する動作を分岐させるために
「onclick」を使った。
今回、ここを考えるのを一番苦労した。
最善ではないのかもしれない。
変更点は以下の通り。

<form action="#" onsubmit="setDirections(this.from.value, this.to.value, this.locale.value); return false">
・
・
・
<input name="submit" type="submit" value="Get Directions!" />

を「onclick」を使用して、以下のように変更。

・
・
<form id="form" name="form" method="" action="#" >
・
・
・
<input name="submit1" type="button" value="地図で確認!" onclick="setDirections(document.form.frompoint.value, document.form.topoint.value, document.form.localeset.value); return false"/>
<input name="submit2" type="button" value="保存する" onclick="goGAEdata();"/>
・
・

また、
GAEへデータを保存するのに、Javascriptで「goGAEdata()」を作成し動作させた。

・
・
function goGAEdata(){
document.form.method = "post";
document.form.action = "/mycourse/add";
document.form.submit();
}
・
・

一番どうするか時間がかかったが、
あまり納得がいっていない。
もうちょっとなんとかならんもんかと思う。
私がつくったアプリ↓
協調型意思決定支援システム「○ 賛否両論 ×(ベータ版)」
http://sanpiryoron.appspot.com/

協調型プロジェクトタスク管理ツール「キャッチ&リリース(ベータ版)」
http://ctchandrls.appspot.com/

GoogleデータサービスAuthSub API利用サンプルアプリ
万歩計MAP

DAYS 15 オーロラソース

2009年11月19日 木曜日

[ GAE Google App Engine ][ Python ][ Google Bigtable ][ Google Maps API ]
[ Google AJAX API ]
ケチャップとマヨネーズを混ぜたソースを「オーロラ」ソースというらしい。
今回、「Google Maps API
は、JavaScriptである。
で、私のGAEアプリはGAE/Pythonで構築している。
GAE/Javaの方が、相性がいいのかもしれないとか思ったが、
とりあえず、GAE/Pythonですすめた。
恐ろしいことが起きた。
JavaScriptソースの中に、pythonソースが混ざっている。
「JavaScriptソースの中に、javaソース」
の方が大変なんだろうか?
私には判断できないのだが・・・。
どう見ても「オーロラ」のように綺麗なソースにはなりえないことを確信した。
以下、10行目の {{frompoint}} と {{topoint}} と {{localeset}} が、GAE/Pythonで渡すパラメータ。

・
・
・
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
gdir = new GDirections(map, document.getElementById("directions"));
GEvent.addListener(gdir, "load", onGDirectionsLoad);
GEvent.addListener(gdir, "error", handleErrors);
setDirections("<span style="color: #f00000;">{{frompoint}}</span>", "<span style="color: #f00000;">{{topoint}}</span>", "<span style="color: #f00000;">{{localeset}}</span>");
}
}
・
・
・

http://code.google.com/apis/ajax/playground/#map_directions_advanced
をカスタマイズをカスタマイズしたのだが、
Javascriptの変数に、「from」が使われているが、
「from」はPythonの予約語なので、「frompoint」にした。。
もっと手の込んだアプリになったら、
こんなことがたくさん起きてしまうと
考えるだけで怖い。
しばらくして、メンテナンスなんかした時に、
「間違ってるじゃん」って書きなおす
or
「こんな文法あったっけ?」って調べる
無限ループ。
無限ループ。
無限ループ。



こわい。
私がつくったアプリ↓
協調型意思決定支援システム「○ 賛否両論 ×(ベータ版)」
http://sanpiryoron.appspot.com/

協調型プロジェクトタスク管理ツール「キャッチ&リリース(ベータ版)」
http://ctchandrls.appspot.com/

GoogleデータサービスAuthSub API利用サンプルアプリ
万歩計MAP

DAYS 14 Google Map との連動

2009年11月18日 水曜日

[ GAE Google App Engine ][ Phthon ][ Google Bigtable ][ Google Maps API ]
[ Google AJAX API ]
万歩計MAP(http://manpokeimap.appspot.com/)というものを作成した。
Google App EngineとGoogle Maps APIの連携できたらいいなぁ
と思っていたので、やってみた。
当初考えていたのは、
Google Maps APIでコースを作成して、
万歩計の歩数を入力していくことで、
自分が現在そのコースのスタート地点から
どこまで歩いたかがわかるというもの。
最近の万歩計は、
母を訪ねて三千里
日本一周」(日本一周歩数計の旅)
なんてものもあるので、
歩数と距離のみの単機能の私の万歩計でも
そんな遊びができるように願いを込めて作ろうと思ったのである。
サイトを見て、おわかりの通り、
そんな簡単に行くわけがない。
力尽きた結果、なんとか
ここ 
まできた。
Code Playground
http://code.google.com/apis/ajax/playground/

というものがあり、
これを使えば、Javascriptオンリーで、
(GAEなんぞ連携しないでも)
自分のホームページにGoogle Mapsを表示することができる。
今回のアプリケーションを作成する上でのポイントは、
GAEのGoogle Bigtableに、
Google Mapsの情報を保存することである。
ただ簡単なものだと、
「わざわざそんなことをしなくてもよい」となるので
小難しいことに挑戦した。
(できる人がやれば、簡単で必要のないものかもしれないが・・・)
方針としては、
http://code.google.com/apis/ajax/playground/#map_directions_advanced
をカスタマイズ
ルートを選択した後、
ルートのデータを保存する方法を考えることにした。
つづく。
私がつくったアプリ↓
協調型意思決定支援システム「○ 賛否両論 ×(ベータ版)」
http://sanpiryoron.appspot.com/

協調型プロジェクトタスク管理ツール「キャッチ&リリース(ベータ版)」
http://ctchandrls.appspot.com/

GoogleデータサービスAuthSub API利用サンプルアプリ
万歩計MAP

ヒット商品予測

2009年11月13日 金曜日

毎年、恒例の「日経トレンディ」の
09年のヒット商品ランキング&10年ヒット商品予測ランキングがでた。
ヒット商品といえど、知らないものも結構あり、
毎年、「へぇー、あっそうなんだー。」と楽しみに見ている。
WS000028.JPG
ランキングは
「売上、シェア」「商品の新規性」「市場の創出性」「消費者のライフスタイルに及ぼす影響力」といったものを選考基準としている。
ちょうど1年前の09年ヒット商品予測と比べてみた。
予測は当たらないものだ。
というより、予測もできないインパクトのある商品をだすのが
提供者側の考え方なのかもしれない。
「政策」「モテ」「安っ!」というキーワードで考えてみた。
「政策」
予測で唯一ドンピシャ当たったのは、エコカー。
去年から見えていた流れであるが、
政策として減税があったのが大きいと考えられる。
そして、ヒット商品の中で、
1000円高速、エコポイントなどもランクインした。
来年の予測でも、地デジ化対応や羽田24時間化による羽田深夜発ツアーなどは
ヒットの確度が高いと考えられる。
ただ、政策によるヒットには「偏り」を感じる。
特定業界であったり、また、1000円高速などは、
ヒットの一方で、大きなダメージを受けたところもあることは否めない。
「モテ」
男性化粧品の「リアップ」は毎年あがっているように思う。
(もしかしてスポンサー?)
さらに男性化粧品メーカーは少ないのか、
ヒットがでると独り勝ちの様相を呈している感がある。
女性化粧品、健康食品、ダイエット・美容関連商品は
必ずヒットがでる。やはり、女性の購買意欲は
経済をささえる原動力かもしれない。
この業界は、通販、インターネット販売でもかなりの
成長をしている。
「安っ!」
安いものは売れる。
「安かろう悪かろう」ではなくなっている。
安くて良い質のものが売れる。これは当たり前。
そのほかでは、
文具、ゲーム、お菓子、家電・PC、日本懐古系が
毎年ヒットにランクしている気がする。
テレビ朝日「あめトーク」という番組で
家電芸人がヒットしたが、
「今後、こんなトーク聞いてみたい予測」をしてみた。
「文具芸人」
  使える文具、使わない見る文具について話す。
「ゲーム芸人」
  流行りのゲームの解説。裏技。
  ゲーマー用語の解説。
  ケータイゲーム
  パチンコVSゲーム
「お菓子芸人」
  懐かしのお菓子はやっていた気がするが、
  新しいお菓子について話してほしい。
  あと地域限定もの。
「日本懐古芸人」
  阿修羅による仏像ブームがあったので、
  仏像トーク。
  お城トーク
  日本世界遺産トーク
  昔の遊び(こま、めんこ・・・)とーく
  言い伝えトーク
  伝統芸能トーク
  伝統技術トーク
  旧街道トーク
  家宝トーク
  
以上。