Web APIで取得した位置情報をAndroidアプリの地図上にマーカーとして追加する

CodeZine / 2013年12月6日 14時0分

吹き出しをタップしたところ

 Android端末の通信機能と、国内外のさまざまなサイトで提供されているWeb APIを活用すれば、楽しいアプリをかんたんに作ることができます。この連載では、多種多様なWeb APIの紹介と、そのAPIを利用したサンプルアプリの制作を通じて、Androidアプリの実践的な開発を解説します。第6回目の本稿は、Web APIで取得した情報を、前回作成したスケルトンアプリの地図上にマーカーとして追加する方法を解説します。

■対象読者

 Androidアプリケーションの開発を始めたい方で、JavaとEclipseの基本的な知識がある方を対象とします。

■最寄駅マップアプリ

 今回作成するアプリは、現在の中心地点からの最寄り駅情報をマーカーで表示するアプリです。地図を移動させると、随時、マーカーが表示されます。

 また、駅のマーカーをタップすると、駅についての情報を吹き出しで表示します。さらに、その吹き出しをタップすると、次の駅、前の駅、検索位置からの距離をトーストで表示します。

最寄駅マップアプリ


マーカーをタップしたところ


吹き出しをタップしたところ


 なお、記事に添付しているサンプルには、次回以降に説明するコードも含まれています。

●駅情報のWeb API

 駅情報の取得には、「HeartRails Express」というサイトで公開されているAPIを利用します。

 HeartRails Expressでは、いくつかのAPIがありますが、今回利用するのは、最寄駅情報取得 APIです。このAPIは、指定の地点の最寄駅情報を取得するもので、仕様は以下のとおりとなっています。

リクエストURL 形式 URL JSON形式 http://express.heartrails.com/api/json?method=getStations XML形式 http://express.heartrails.com/api/xml?method=getStations リクエストパラメータ パラメータ 値 説明 method getStations (固定) メソッド名 x double (必須) 最寄駅の情報を取得したい場所の経度 (世界測地系) y double (必須) 最寄駅の情報を取得したい場所の緯度 (世界測地系) レスポンスフィールド フィールド 説明 response 最寄駅の情報の一覧 station 最寄駅の情報 name 最寄駅名 prev 前の駅名(始発駅の場合はnull) next 次の駅名(終着駅の場合はnull) x 最寄駅の経度(世界測地系) y 最寄駅の緯度(世界測地系) distance 指定の場所から最寄り駅までの距離(精度は10m) postal 最寄駅の郵便番号 prefecture 最寄駅の存在する都道府県名 line 最寄駅の存在する路線名●クラスの一覧と処理手順

 今回のアプリのクラスは、次のようになっています。

アプリのクラス クラス名 概要 パッケージ名 MainActivity アクティビティ com.rakuraku.android.ekimap EkiInfo 最寄駅情報クラス(新規追加) com.rakuraku.android.ekimap ParseMoyori 最寄駅結果解析クラス(新規追加) com.rakuraku.android.ekimap HttpAsyncLoader ローダークラス com.rakuraku.android.util ParseJson JSON解析クラス com.rakuraku.android.util 追加する処理の内容は、次のとおりです。この順番で解説することにします。

地図の中心位置を取得して、Web APIにアクセスする 結果を解析する マーカーを追加する マーカーと駅情報を保存する 地図の位置を変更したときのイベントリスナーを追加する(次回解説) マーカーをクリックした時のイベントリスナーを追加する(次回解説)

CodeZine

トピックスRSS

ランキング