Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2013/12/06 14:00

 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. マーカーをクリックした時のイベントリスナーを追加する(次回解説)

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

著者プロフィール

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

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

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

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Web APIで楽々Androidアプリ

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5