投稿

1月, 2011の投稿を表示しています

Androidアプリにルート表示する(その5)

イメージ
先日デコードした "overview_polyline"から得られた経緯度を直線でつないでみた結果 うまくいった! マップをズームしてみると、 予想通りルートの東名高速道路とズレが目立つ。 同じ "overview_polyline"による描画でも、 ルート検索対象の地点が近いと、ズームしても道路に忠実な経路が得られた。 うまくできてますね~。 ブラウザ上のgooglemapの様に描画するには、"levels"の解釈。 "overview_polyline"と 区間データ内の"polyline"との使い分けが必要なようです。 続く

Androidアプリにルート表示する(その4)

イメージ
Google Directions API  から取得したJSONデータ内にある"overview_polyline"データを、先日作成したデコーダを通して得られる経緯度点をオーバーレイ描画してみた結果 思惑通り、ルートに従った緻密な点が得られた。 但し、地図をズームしていくと荒さが目だってくるので、拡大した場合は、区間データに含まれる"polyline"データに切り替える事で、WEBページ上のグーグルマップと同品質の表示が可能になるのであろう。 続く

anobar8をセットアップ

イメージ
無線LAN接続にしてテレビの上に設置 これでようやく、アナログテレビが半分デジタル化された!? 形状がチョイと不安定で、震度4ぐらいの地震だと転げ落ちてきそうな気がする。 付属リモコンでテレビとanobarが一緒にチャンネル切り替えされるのは、Good! 残念なのは、テレビの電源OFFはできるけど、anobarはコンセントから断しないとダメってところ。

Anobar8がキター

イメージ
モニター応募していたAnobar8が届いた。 思っていたより表示画面が大きくて、Good!

Androidアプリにルート表示する(その3)

apiから取得したpolylineをデコードする。 googleから エンコード化ポリライン アルゴリズム方式 が公開されているので、この記述に 従って エンコーダを書いてみたが結果が同じにならず、デバッガで追い掛けながら、あーだこーだと 相当苦労した。 結論としては、この文書の記述は不正確な部分や端折ってある部分のある事が判明。 以下コードは、色々な経緯度で試してみましたが、完全である保障は無いので注意ください。 private static StringBuffer encoderPosi(int num) {   ArrayList<Byte> bit =new ArrayList<Byte>();   StringBuffer ret = new StringBuffer();  num=num<<1;  if(num <0)                   //負値の場合はビット反転  {   num=~num;  }   for(int i=0;i<6;i++)               //5bit毎に分割   {      bit.add((byte)(num&0x1f));    num=num>>>5;   }   for(int i=bit.size()-1;i>=0;i--)         //不要な0データ削除   {    byte n=bit.get(i);    if(n==0){     bit.remove(i);    }else{    break;    }   }   for(int i=0;i<bit.size()-1;i++)         //0x20論理和(最終データは除く)   {    bit.set(i, (byte) (bit.get(i)|0x20));   }   for(int i=0;i<bit.size();i++)                      //63加算   {    bit.set(i, (byte) (bit.get(i)+63));    if(bit.get(i)=='\\

Androidアプリにルート表示する(その2)

イメージ
JSONをパースして、ルートの区間地点を表示してみる。 受信データ (Osaka->Tokyo、Drivingモード) { "status": "OK", "routes": [ { "summary": "東名高速道路", "legs": [ { "steps": [ { "travel_mode": "DRIVING", "start_location": { "lat": 34.6938100, "lng": 135.5010800 }, "end_location": { "lat": 34.6925800, "lng": 135.5009600 }, "polyline": { "points": "icwrEw``zXtFV", "levels": "BB" }, "duration": { "value": 11, "text": "1分" }, "html_instructions": "ルートの説明", "distance": { "value": 137, "text": "0.1 km" } },  ・・・終点まで

Androidアプリにルート表示する(その1)

googleAPI でAndroidアプリ上への地図表示は簡単にできた。 しかし、ルート検索機能は公開されておらずブラウザ経由での表示しかできない。 で、自作してみる事にした。 WEBAPIを使ってルート検索結果を取得して、ルート表示データ(polyline)を使って表示した地図上に描画できるのは? ルート検索用のAPIは Google Directions API を使用。 JSONまたはXMLでレスポンスが得られるようで、データ量がコンパクトなJSONを選択。 DefaultHttpClient を使用して、 http://maps.google.com/maps/api/directions/json?origin=Osaka&destination=Tokyo&mode=driving&sensor=false てな感じでレスポンスを取得 取得したjsonファイルのパース処理へ続く。

はじめまして

幾つ目のブログだろ? 今回は長続きさせるつもりですのでよろしく。