カテゴリー別アーカイブ: GAE

GAEのデータストアをローカル開発環境へリストア

タイトル通りですが、結構手間取ったので備忘録として。

GAE(GoogleAppEngine)で動作させてるWebアプリのデータストアをダウンロード。アプリケーション名はここではAPP_IDと表記します。

appcfg.py download_data --application=APP_ID --kind=Sample --url=http://APP_ID.appspot.com/_ah/remote_api --filename=./Sample.dmp


ローカルの開発環境でGoogleAppLauncherからアプリを起動します。起動の時に3つのポートが開放されます。

  1. 管理コンソール用
  2. アプリケーションサーバ用
  3. APIサーバ用

で、その後に

appcfg.py upload_data --url=http://localhost:(アプリケーションサーバ用ポート番号)/_ah/remote_api --filename=./Sample.dmp --application=dev~APP_ID --kind=Sample


データのリストアなので管理コンソール用のポート番号でいいのかな、と思いますがアプリケーションサーバ用のポート番号でした。管理コンソール用のポート番号

http://localhost:(管理コンソール用ポート番号)/_ah/remote_api

を指定しても404エラーが出てしまいますので要注意。

もう一点注意するところはアプリケーション名。「dev~APP_ID」と指定すればOKでした。

カテゴリー: GAE, プログラム | GAEのデータストアをローカル開発環境へリストア はコメントを受け付けていません。

jQuery mobile

jQuery mobile等を使って避難所マップ等を移植してみました。今までのページとの比較のために、GPSでトラッキングするページはそのままです。見た目はアプリっぽくなりましたが、まだまだ課題は残ってます。PCからだと表示できるブラウザはChromeのみです。PCからだと表示だけで、動作はしません。

あわせてトップページの見せ方も変更。だんだん手足がついてきたような感じです。どこかで使ってもらいたいですね。

カテゴリー: Android, GAE, geo, html5, iPhone, Javascript, python | jQuery mobile はコメントを受け付けていません。

負荷テスト

ある程度データ量が無いと負荷テストもできないので、自治体の避難施設一覧から広域避難地と一次避難地のデータをわかる範囲で登録してみました。xxスポーツ広場、はだいたいこのあたりだろうな、と想像はつくけれど境界がはっきりわからないので、一次避難地のスポーツ広場はほとんど除外しました。廃校になった小学校跡地は自分にはわかりませんのでこれも除外。あと、公園でわからないところが多かった。ここで調べて、住所から写真モードで表示して、それらしき敷地を公園として囲んでみました。見当はずれの所があるかもしれません。およそ200箇所。スマートフォンだとさすがにつらいかな、と思ったけれど、予想してた程は遅くはなかったような気がします。GPS情報がすんなりと取れれば、一番近い避難所へのルート検索は予想してたよりもシュッと表示してくれました。PC用はこちら、スマートフォン用はこちらです。

県外からたまたま静岡市に来て万が一被災した場合、不慣れな土地であれば地名から位置関係を把握しにくいものだと思います。県外出身の自分も、生活圏以外ではわからない地名が結構ありました。地名や施設名はそこで生活している人でないとわからないものだろう、と考えて現在位置表示と最も近い避難場所へのルート検索機能をつけた次第です。あとは登録と変更画面をどうしようか、とか、データ数が多くなった場合の見せ方を考え中です。やはりスマホに特化するなら現在位置から近い数件を絞り込んで表示、というのがスマートかもしれません。

できることなら使う機会が無いことを祈るばかりです。海に近いところでも公園が避難場所になってるところがいくつかありました。地震のあとの津波を想像したら、こういう場所は避けて学校など校舎の高い所の方がいいだろうと思います。

カテゴリー: Android, GAE, geo, html5, iPhone, プログラム | 負荷テスト はコメントを受け付けていません。

フィールドテスト

SIM無しのiPhone3Gで歩きまわってGPSのテストをするには限界がある。Wifiの範囲なら歩いてテストできるけれど、そんなに電波の飛ぶアクセスポイントでもないので、すぐに圏外になる。うちの中を行ったり来たりというのも実際の使用には即してない。前回携帯を機種変更してから2年程。ずっと先伸ばしにしてきたけれど、ここらがAndroidへの移行時期かもしれない、と思ってドコモショップへ。事前にカタログとか見てたけれど、ベンチマークテストではサムスンの機種がダントツらしい。実際に触ってみたけれど、確かにスクロールなど操作した感じは速かった。でもこれにはしてない。いずれSIMロックフリーになるだろうと思ってシャープの製品にした。ベンチマークでは下から数えたほうがいいくらいだったけれど、今までの携帯でメールを打つのも鬱陶しく感じる自分にそこまでの操作性が必要と思えない。人間速いのに慣れると際限が無くなる。

まず最初にやったのが例のマップのスマートフォン版のページの表示。GPSの精度は問題無いけれど、なぜか動作が遅く感じる。しまいにはフリーズして早々に強制終了。しばらく何を押しても反応しなくてしばらくしたらOSの再起動。。。そんなにひどいソースを書いた覚えは無い。どうやらソフトウェアの更新をやっていた様子。パケット代は相当かかると思います、と店員さんに言われたのを思い出した。初日にして上限に到達してしまった。

実際に登録したエリアに行ってみた。城北公園でウロウロしてた。自転車装束で。駐禁とってた婦警さんにはジロジロ見られてたけれど、こっちも仕事。GPS情報を取りにいった直後の精度がひどい。たぶん基地局から割り出した概算だろうけれど、これも返してくるのか。。。iPhoneとは勝手が違った。2、3回目以降は精度が出てるっぽい。エリアに入ればこんな情報ウィンドウが表示されます。

範囲内にいれば情報ウィンドウを表示する、というプログラムの書き方では、閉じても閉じても何度もウィンドウが表示されて画面がちらつくので、一度エリア外に出たと判断できるまでは情報ウィンドウを表示しないように書いていた。ただ、GPSを起動した時に最初に返してくるデータの精度が低いので、瞬間的に外に出ては戻ってきたような状態でパカパカと延々と情報ウィンドウが表示されて困った。一度外に出た情報が取れているので情報ウィンドウの制御の判定はどうやら正しい様子。ただ、機種によってGPSが一発目に返すデータの精度は違う。場所や天気、電波状況によって相当変わってくるものだろう。iPhone3Gでは精度が悪い時で100メートル程だった。悪い時は全然取れない、というエラーコードだった。Androidでは一発目の精度は250メートルを超えてた。PCのノイズでも拾ってたのかもしれないけれど、この値では取れなかったと返してくれるほうがありがたい。結局精度が70メートル以下になるまでは読み捨てる事にした。これは70メートル以下の精度が出なければ延々とトラッキングできずタイムアウトになる、という事もあり得る。このあたりの処理はもう少し考えたほうがよさそうだと思うけれど、iPhone3G+Wifiでも30メートル程の精度は出てるので多分大丈夫だろう。初回読み込み時は大雑把な値を返してくるのは仕方がないですが、停止、起動の繰り返しで地図が暴れない程度の精度は出せたように思います。

カテゴリー: Android, GAE, geo, html5, iPhone, Javascript, python, プログラム | フィールドテスト はコメントを受け付けていません。

β版

先日作った避難所の地図、あれから手を加えました。APIv3を使ってルート表示を入れてみました。直線距離で一番近いエリアの頂点へのルート表示です。実際に通れるルートで一番近いところ、というのも考えましたが、これはまたいずれ。PC用はエリアの登録やルート表示などはマイマップ機能を使えば同じような事ができるので、エリアに入ったかどうかの判定をのぞけば、あまり目新しい感じは無いと思います。

実際に作りたかったのはスマートフォン用のページ。GPSで現在位置を追尾して、直線距離で一番近いエリアへのルートを出す、というもの。エリア内に入れば情報ウィンドウを表示するようにしました。ただ、町単位の避難所は小中学校や公民館などもあって、データの登録が大変。これはひとりでやるものではないですね。マイマップからデータのインポート等ができるなら、登録ページを公開してお手伝いしてもらう、というのもありかもしれないですね。

カテゴリー: GAE, geo, html5, Javascript, python | β版 はコメントを受け付けていません。