SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Web APIで楽々Androidアプリ

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

Web APIで楽々Androidアプリ(6)

  • このエントリーをはてなブックマークに追加

 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

 追加する処理の内容は、次のとおりです。この順番で解説することにします。

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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Web APIへのアクセス

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Web APIで楽々Androidアプリ連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7517 2013/12/06 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング