GoogleMapsAPI を利用した Android 用クーポン取得アプリケーションの

GoogleMapsAPI を利用した
Android 用クーポン取得アプリケーションの開発
経営情報学部 経営情報学科
5109111 五通 佳来多
5109182 中川 貴智
1
目次
第1章 はじめに....................................................................................................................... 3
第2章 関連研究 ..................................................................................................................... 4
第2.1節 マクドナルド公式アプリ ......................................................................................... 4
第2.2節 UNIQLO アプリ ................................................................................................... 5
第3章 GoogleMapsAPI を利用したクーポン取得アプリケーション ............................................ 6
第3.1節 環境設定.............................................................................................................. 6
第3.2節 アプリケーションの概要 ........................................................................................ 8
第3.3.1項 システム全体像 ........................................................................................... 9
第3.3.2項 クラス図 ..................................................................................................... 10
第3.4節 システム詳細設計 ...............................................................................................11
第3.4.1項 toppage クラス............................................................................................11
第3.4.2項 AndroidMAPActivity クラス..................................................................... 13
第4章 考察........................................................................................................................... 18
第5章 まとめ ......................................................................................................................... 19
第5.1節 全体まとめ ......................................................................................................... 19
第5.2節 今後の課題 ........................................................................................................ 19
参考文献 ............................................................................................................................... 20
謝辞 ....................................................................................................................................... 21
2
第1章
はじめに
現在、スマートフォンの所有率は年々増えてきている。その、スマートフォンの最大の
魅力は携帯電話には出来なかった、アプリケーション(以後アプリと呼ぶ)の追加機能で
ある。従来の携帯電話では、事前にアプリケーションが搭載されているが、それを追加す
るのは困難であった。対してスマートフォンでは、事前に基本的な OS やアプリケーショ
ンが搭載されているだけで、ユーザーが自由にアプリをインストールすることを可能とし
ている。アプリの追加・使用することで生活を快適に過ごせる。例えば、目的地までのル
ートを検索するアプリ、EZ ナビウォーク、天気予報、雨雲の動きや台風などが分かるア
プリウェザーニュースタッチ、スケジュールの管理ができるアプリジョルテなどがある。
このように多様なアプリを使用することで、生活が便利になる。
スマートフォンは、アプリが追加できる点ともう1つ、開発が容易という点がある。
AndroidOS や GoogleAPI が無料で公開されているので、独自のアプリケーションを比較
的簡単に開発することができる。そして今回、API が無料で公開されている点、開発が比
較的容易な点から GoogleMapsAPI を利用したクーポン出力アプリを開発した。本システ
ムを思いついたのは、マップを利用したクーポン出力アプリは地域経済へ貢献できると考
えたからである。例えば、忘年会・新年会など開催される場合、店舗数が多いので難波や
梅田など都市部中心の店選びとなる。だが、クーポン出力アプリなどを活用することで都
市部だけでなく、現在の所在地近くの地方店舗でも探し出すことができる。さらに、クー
ポンを出力することで地方店舗でも集客率を上げることができ、地域経済へ貢献すること
ができると考えた。そこで、GoogleMapsAPI を利用した Android 用クーポン取得アプリ
を開発する。本論文では、第2章で関連研究について述べる。第3章ではシステムの提案、
システム詳細を述べる。第4章では考察を述べ、第5章でまとめを述べる。
図1-1 マップアプリ実行画
3
第2章
関連研究
今回開発したクーポン出力プログラムアプリの、類似クーポン出力アプリについて紹介
する。
第2.1節
マクドナルド公式アプリ
マクドナルドクーポンアプリは、日本マクドナルド株式会社が開発したクーポン出力ア
プリである。クーポンは、アプリのみでなくチラシや携帯電話からでも使用することがで
きる。携帯電話・スマートフォンからクーポンを利用する場合無料の会員登録が必要であ
る。携帯電話からのクーポンの利用は、スマートフォンのようにアプリをインストールす
るのではなく、マクドナルドサイトにアクセスし Web 上に掲載されているクーポンを直接
利用する。
マクドナルド公式アプリの機能は、マクドナルド店舗検索やクーポンの出力をする(図
2-1参照)。クーポンの利用は、お店の店員に携帯電話の画面上に表示されているクーポ
ンの番号を見せるだけで利用することができ、お財布ケータイ機能搭載の端末でマクドナ
ルド店頭のリーダーライターにかざすことによりクーポンによる割引した価格で注文が可
能としている。 さらに、店舗検索では、Google マップを使用した現在位置を中心に近所
のマクドナルド店がマップ上に表示され、地名検索も可能としている。
マクドナルド公式アプリでは、お財布ケータイ機能搭載のスマートフォン向けにスクラ
ッチ de クーポンのサービスを開始した。スクラッチ de クーポンとは、1日1回スクラッ
チができるサービスである(図2-2参照)。マクドナルド公式アプリにある FUN ページ
からスクラッチ de クーポンアプリをダウンロードすると、デジタルスクラッチカードが
画面に現れ、紙のスクラッチと同様に指でこすることで、商品のクーポンなどが当たるサ
ービスである。
図2-2 スクラッチ de クーポン実行画面
引用:マクドナルド ホームページ[1]
図2-1 マクドナルド公式アプリ実行画
面
4
第2.2節 UNIQLO アプリ
UNIQLO アプリは、大手アパレル系企業ユニクロが開発したアプリである(図2-3参
照)。クーポン機能のみならず、マップ機能を使用した店舗検索、さらにアプリから通信
販売が可能である。他にも、最新広告を観覧できるチラシ機能や、ユニクロの出来事を取
り上げたニュース機能などが搭載されている。クーポンの使用は、マクドナルド公式アプ
リと違い画面上のクーポンを見せることで適用することができる。さらに、ユニクロモバ
イル会員になることで500円引きクーポン、モバイル会員のみ指定日に使える割引クー
ポン、毎週モバイル会員だけの特別価格での利用ができる。
図2-3 UNIQLO アプリ実行画面
引用;UNIQLO ホームページ[2]
5
第3章 GoogleMapsAPI を利用したクーポン取得アプリケ
ーション
第3.1節 環境設定
最初に、Java の開発および実行環境を準備するため JDK をインストールする。JDK は、
Java の開発環境である。JDK をインストールしたことにより、コマンドプロンプト使用
してコンパイルや実行を行うことが可能になる。だが、コマンドプロンプトからでは、効
率が悪いので統合開発環境 Eclipse をインストールする。Android 開発環境にするため
Eclipse に、Android 向けソフトウェア Android SDK をインストールする。Android 向け
の Java プログラムのコーディングやコンパイル、デバッグ、ビルドなどが行えるようす
るための、プロジェクトツールである ADK を Eclipse にプラグインを行う。開発する際
エミュレーターを使用するのではなく、アンドロイド OS をインストールしている実機を
使い開発を進めた。実機は、au スマートフォン IS03 である。実機での開発は、まず、PC
に ス マ ー ト フ ォ ン を接続 し た こ と を 認 識 させる た め に 、 ISO3 用デバ イ ス ド ラ イ バ
usb_driver_SHARP をインストールする(図3-1参照)。スマートフォン側で USB デ
バッグモードにチェックを入れると準備完了である。
デバイスドライバーインストール後
デバイスドライバーインストール前エラー表
図3-1 PC 認識画面
今回開発したアプリは、クーポン出力プログラムは、Google マップ機能を利用したアプ
リである。Google マップを利用するには、AndroidMapsAPI Key の取得が必要になる。
AndroidMapsAPI とは、グーグルマップの持つ機能を、インターネットを介して外部から
利用するための手続きをまとめた API のことである。API とは、ソフトウェアを開発する
6
際に使用できる命令や関数の集合のことを指す。利用する前にアカウント登録をし、
「API Key」と呼ばれる文字列を取得してそれを Web サイトに埋め込む必要がある。まず、
AndroidMapsAPI Key を取得するためには証明用の MD5 フィンガープリントを取得する。
コマンドプロンプトから Java がインストールされている jdk フォルダの dubug.keysote
をコマンドに入力する。keytool コマンドで表示されたフィンガープリントを Sign Up for
the Android Maps API -GoogleMapsAPI Web ペ ージ にあ る記入 欄に入 力す ると 、
AndroidMapsAPI Key が得ることができる(図3-2参照)。
図3-2 AndroidMapsAPIKey 画面
引用:GoogleMapsAPIweb ページ[3]
7
第3.2節
アプリケーションの概要
本論文で開発したアプリの概要を紹介する。フリーワード検索と Google マップを使用
した GPS 検索で店舗を探しクーポンを出力する。アプリを開発する Google マップを使い、
アカウントを取得し、AndroidMapsAPI Key を取得する。クーポン情報は、ホットペッパ
ーグルメの Web サイトから情報を参照している。機能面はフリーワード検索・地名・店舗
名検索はもちろん、あいまい検索も可能であり、GPS 機能での周辺にある店舗情報も知る
ことができる。
アプリを起動させると、トップページ画面が表示される(図3-3トップページ画面参
照)。検索ボタンは、タップされると検索バーが表示され、検索バーに入力された情報が
土地・店舗名・地名な場合検索された場所周辺に PIN 画像が描写される。地図画面下のリ
ストビューには PIN 描写されている店舗の名前を表示している(図3-3 PIN 描写画面、
リストビュー画面参照)。地図上に描写された PIN 画像にタップすると店舗のクーポン
Web ページにアクセスする仕組みであるが未実装である(図3-3クーポン表示イメージ
画面参照)。
GPS 検索では、現在地周辺 300m の範囲に存在するクーポン利用可能な店舗を地図上に
PIN 画像として描写されるが GPS 機能は未実装であるため座標を難波に設定している。
地図画面上には、検索機能同様 PIN 画像が描写され、リストビュー画面に店舗名が表示さ
れる。
トップページ検索・GPS
ボタン選択画面
検索ボタンをタップ
地図 PIN 画像描写
地名入力画面
リストビュー画面
図3-3
GoogleMapsAPI を利用した
Android 用クーポン取得アプリケーションの開発
8
クーポン表示イメージ画面
第3.3.1項
システム全体像
図3-4 システム全体像
開発したクーポン出力アプリは、GoogleMapsAPI と HotPepperWebAPI を利用した。
GoogleMapsAPI を認証することで、地図情報を活用したサービスを構築することができ
る。開発したアプリには、GPS・検索画面からの情報を地図上に表示するために Google
マップを利用した。Google マップを表示するのに、GoogleMapsAPI から認証を得て座標
を Google サービスに送り、地図情報が送られてくる仕組みである。
HotPepperWebAPI では、ユーザ登録をすることが必要なデータサーバである。利用す
るためには、HotPepperWeb サイトが提供している API キーを利用することでアクセス
することができる。店舗を取得するために、API キーに座標などの検索クエリを追加し
HotPepper グルメサイトに送り、店舗情報を取得することができる(図3-4参照)。
9
第3.3.2項
クラス図
検索条件を
受け取り結
果を返す
GPS 情 報
を送り地図
を受け取る
図3-5 クラス図
クラスの設計を図3-5に示す。Toppage.java がよびだされ Topppage にセットされた
Layout が表示される。その Layout には GPS 検索用のボタンとフリーワード検索用のボ
タンが記述されている。GPS ボタンを押せば AndroidMAPActivity.java へテキストボッ
クスは空だと Intent で送られる。検索ボタンを押せば、Intent によってテキストボック
ス に 入 れ ら れ た 文 字 を AndroidMAPActivity.java が 呼 び 出 さ れ そ こ へ 送 ら れ る 。
AndroidMAPActivity.java は主に制御と描画の更新を行っている。また、Intent で送られ
てきたものに中身があれば UTF-8 形式に変換し HotPepper.java で生成される URL の形
を変更し入力された文字でフリーワード検索を行うようにする。HotPepper.java は
HotPepperWeb サービスへの店の情報のリクエストと、HotPepperWeb サービスから送ら
れ て き た 情 報 が 入 っ た XML の 解 析 と 情 報 の 取 出 し な ど を 行 う 。 ShopList.java は
HotPepper.java で取り出した店の情報を入れ AndroidMAPActivity.java に渡したりする
リストの拡張部分である。PinItemizedOverlay.java は GoogleMap の上にピンを表示する
ためのクラスである。Popupset.java は、HotPepper.java でリストに格納されたショップ
の名前を AndrodiMAPActivity.java でリスト表記した後そのリストの名前に touch を検出
された場合 PopupWindow.java に表記する。DBpOpneHelper.java クラスは SQLite を用
い 検 索 し た 情 報 を 保 存 す る ク ラ ス で あ る 。 た だ し 、 PopupWindow.java ク ラ ス と
DBpOpneHelper.java クラスは未実装である。
10
第3.4節
システム詳細設計
第3.4.1項
toppage クラス
図3-6 トップページ XML
色は XML とトップページの対応を示している。
開発したアプリのトップページ画面レイアウトは、XML で開発した。トップページと
画面のレイアウトを図3-6の XML ファイルで定義されている。まず、トップページの文
字を①textview タグを使う。②center_horizontal で中央揃え③wrap_content で適切な高
さに自動調整している。検索・GPS ボタンは④Button タグを使い表示させる。まず⑤
LinearLayou タグでボタン配置を横一列するよう設定するボタンの幅 150dp に設定し⑥
wrap_content で自動調整している(図3-6参照)。
11
図3-7
toppage.java のコードの一部」
Toppage.java では、button1 に検索ボタン、button2 に GPS ボタンのリスナーを実装
した。検索ボタンにタップされた場合、図3-7を参照してみると①button1 がタップされ
ると ttonClickListener メソッドへ情報が渡され onSearchRequested メソッドを呼び出す。
呼び出された、onSearchRequested により検索バーが表示される仕組みである。GPS ボ
タンは、タップされると②button2 の ButtonS へタップすると AndroidMAPActivity.java
へ画面遷移する。
12
第3.4.2項
AndroidMAPActivity クラス
開始
Li s tvi ewの描画する
Ma pvi ewの描画する
テキストボックス
に文字が入って
るか?
Yes
UTF-8形式で変換する
No
Hotpepperへ情報を入れ検
索する
Pi nInfoに店の情報を入れ
る
Li s tvi ewに情報を登録する
OvarLayにPinInfoを登録して
描画する
Listviewの表示の更新する
終了
図3-8 AndroidMAPActivity.java のフローチャート
AndroidMAPActivity.java は 、 開 発 し た ア プ リ の 核 と な る ク ラ ス で あ る 。
AndroidMAPActivity.java は地図を表示し、自分が今居る現在地にマーカーを置き、店情
報を検索し検索した結果をリストとマップ上にピンを刺して表示するプログラムである。
このプログラムを下記に説明する。
13
<LinearLayout
xmlns:android=
http://schemas.android.com/apk/res/android
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
② <com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:apiKey="0kLr-uiPgKk4A1JJ-SWPF9XKb7ZYIxMo7-7ZCw"
android:id="@+id/map"
android:clickable="true"
android:focusable="true" />
③<ListView android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="200dip"
android:layout_weight="1" />
</LinearLayout>
①
図3-9 マップ画面
AndroidMAPActivity.java の GUI は maplayout.xml で定義されている(図3-9参
照)。①は画面のサイズと並べ方が設定でき、これで設定できることは縦や横に一列に並
べたり画面をどれだけ占有するか設定できる。Orientation=“vertical”で縦に一直線に並ぶ
よう設定でき、Orientation=”horizontal”と設定すれば横に表示される。②の MapView は
特殊な View で Web ブラウザとしての機能があり GoogleMapsAPI Key が設定されていな
いと MAP が表示されない。また、この描画された地図には Overlay クラスがあり、そこ
に座標や表示する画像などを入れた OverlayItem を追加することで、座標に画像を表示し
たりなどできる。③は ListView で id に対応するリストの中身が表示される。表示した後
もリストに追加しても更新しない限り追加されたものは表示されない。ListView には現在
サンプルのリスト表記が入っているが、自由に編集でき比較的自由度が高い。サイズは
200dp と設定しているが、Activity の中に画面のサイズを図り対比で設定するほうが端末
を選ばない画面設計になる。ほかにも weight で画面の表示の対比の設定ができる。
14
public class AndroidMAPActivity extends MapActivity {
private MapController controller;
private Geocoder geo;
private Handler handler;
private MapView mapView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
①setContentView(R.layout.maplayout);
//マップの表示と設定
②mapView = (MapView) findViewById(R.id.map);
mapView.setEnabled(true);//表示するかしないか
mapView.setClickable(true);//クリックやドラックを許可するか
mapView.setBuiltInZoomControls(true);//ズーム機能を有効にするか?
mapView.setSatellite(false);//地図を衛星写真に切り替えるかどうか?
controller=mapView.getController();//縮小率などを変更するためのユーティリティクラス
mapView.invalidate();//mapview を再描画をする
mapView.setSatellite(false);
②
geo=new Geocoder(this,Locale.JAPAN);
//非同期処理の為の Handler を作る
handler=new Handler();
//GPS を用い方角や現在地を計測しその場所にマーカーを描写する
initMyLocation();
}
private void initMyLocation(){
③final MyLocationOverlay marker=new MyLocationOverlay(this,mapView);
marker.enableMyLocation();
marker.enableCompass();//コンパスを表示
④marker.runOnFirstFix(new Runnable(){
public void run(){
GeoPoint p =marker.getMyLocation();
controller.animateTo(p);
try{
double lat =Integer.valueOf(p.getLatitudeE6()).doubleValue()/1e6;
double lng =Integer.valueOf(p.getLatitudeE6()).doubleValue()/1e6;
List list = geo.getFromLocation(lat,lng,1);
if(list.isEmpty())return;
Address a=(Address)list.get(0);
String tmp;
StringBuffer buf=new StringBuffer();
for(int i=1;(tmp=a.getAddressLine(i))!=null;i++){
buf.append(tmp);
}
final String name =buf.toString();
handler.post(new Runnable(){
public void run(){
}
});
}catch(IOException e){}
}
});
mapView.getOverlays().add(marker);
}
}
図3-10 AndroidMAPActivity のマップの抜出
AndroidMAPActivity クラスの GoogleMap の表示や制御処理を図3-10 に示す。図310 の①は前述した maplayout.xml を読み込むことで、ユーザーインターフェイスの GUI
を定義する。図3-10 の②の範囲は MapView の表示に関する設定で、この図3-10②の記
述ではクリックやドラッグを許可し、ズーム機能を有効になるよう設定している。
initMyLocation はコンパスを描画したり GoogleMapView に今自分がいる現在地をマーカ
ーで描写することができるメソッドで、図3-10 の③で作られている MyLocationOverlay
15
クラスの maker 変数にマーカー入れ、MapView の OverlayList に登録して表示する。④
ではマルチスレッドによるマーカーの描画を行う。詳しくは、runOnFirstFix()の実行前
に,最初に位置決定がされたときの近辺にあるマーカーを取得する処理を run()メソッド
の独立スレッドで実行されている。また、自分の位置が変更されるたびに,④のメソッド
がコールされるので,移動後の位置に従ってマーカーも変化する。
public class AndroidMAPActivity extends MapActivity {
private static final boolean keyword = false;
HotpPepper hp=new HotPepper(“17aebd8d3e9be54f”)
private void start(){
Intent intent = getIntent();
String word= intent.getStringExtra(SearchManager.QUERY);
//受け取った「keyword」を元に検索処理を行う。
String keyword = null;
if ( word != null) {
try {
byte[] b = word.getBytes("UTF-8");
int len = b.length;
for (int i = 0; i < len; i++)
if(i <= 0 ){
keyword ="%"+ Integer.toString(b[i] & 0xFF, 16);
}
else{keyword = keyword +"%"+ Integer.toString(b[i] & 0xFF, 16);
}
}
} catch (java.io.UnsupportedEncodingException e) {}
hp.setkeyword(keyword); //Hotpepper 検索クエリとして入れる
//*******************HotPepper.java から抜粋
public class HotPepper {
public void setkeyword(String keyword){
this.keyword = String.valueOf(keyword);
}
}
}
}
}
図3-11 AndroidMAPActivty.java UTF-8 変換とセット部分抜粋
図3-11 は、AndroidMAPActivity から抜粋した部分である。Toppage.java に入力され
た文字を受け取り UTF-8 に変換するプログラムである。UTF-8 に変換する理由は
HotPepperWeb サービスの検索クエリは UTF-8 形式でしか認識しないためである。
16
public class AndroidMAPActivity extends MapActivity {
HotPepper hp =new HotPepper("17aebd8d3e9be54f");
private MapView mapView;
static List pinInfos =new ArrayList();
PinInfo pinInfo =new PinInfo();
PinItemizedOverlay pinOverlay;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
start();
mapView.getOverlays().add(pinOverlay);//PinOverlay を Overlays として登録
}
private void start(){
hp.setrange(3);//範囲
hp.setlocation(34.663111,135.502796);//座標
実験用にこのまま
ArrayList<ShopList>str =new ArrayList<ShopList>();
try{
①str =hp.getshop();
}catch(XmlPullParserException e){//try の中で XML を捕まえる
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
②for(Iterator<ShopList>ite=str.iterator();ite.hasNext();){
ShopList s =ite.next();
pinInfo=new PinInfo();
pinInfo.setPonint(new GeoPoint(s.getshoplatitude(),s.getshoplongitude()));
pinInfo.setName(s.getshopname());
pinInfo.geturi(s.getshopuri());
pinInfo.setPin(getResources().getDrawable(R.drawable.pin));
pinInfos.add(pinInfo);
}
③pinOverlay = new PinItemizedOverlay(getResources().getDrawable(R.drawable.pin),pinInfos,mapView);
pinOverlay.setMapController(controller);
}
}
図3-12 AndroidMAPActivity.java の PIN を表示抜粋
図3-12 は AndroidMAPActivty.java の中での機能は、HotPepperWeb サービスへリク
エストして返却された店の情報の XML を、マップ上のピン情報に追加する処理である。
詳しく説明すると、図3-12 の①で Hotpepper.java クラスを呼び出し HotPepper クラス
からリクエストを送信し HotPepperWeb サービスから送られてきたデータを解析し、
ShopList の ArrayList へ加える。図3-12 の②は ShopList の店情報の数だけ pinInfo を
生成し、店情報を追加して pinInfos のコレクションへ蓄積する。図3-12 の③では,現在
のマップに新しいピン情報を追加する処理である。まず、PinItemizedOverlay クラスを
新しく生成する。その時、取得した店情報のリストを現在のマップ上に表示するために、
生成時の引数は描画リソースの情報(getResources().getDrawable(R.drawable.pin)と、
店情報リスト(pinInfos)と現在のマップ(mapView)である。さらに、新しい店情報であ
る pinOverLay の ピ ン リ ス ト を マ ッ プ 上 に 配 置 し て 、 制 御 す る た め に 、
pinOverlay.setMapController(controller)で現在のコントローラをセットする。
17
第4章
考察
今回開発した GoogleMapsAPI を利用した Android 用クーポン取得アプリは、Google
マップを活用し、Google マップ上に存在するクーポン利用可能な店舗を探し出しクーポン
を出力するアプリである。特徴は、Google マップを活用しクーポンを出力するための検索
機能・GPS 機能があり、より詳しく店舗を検索することができることである。本章では、
GoogleMapsAPI(以下 v1 と呼ぶ)を利用したクーポン取得アプリに 2012 年 12 月にリ
リースされた GoogleMapsAPI v2(以下 v2 と呼ぶ)が組み込むことで、機能拡張につい
て説明し,その変更箇所を考察する。
v2 では、3D 描写機能が追加され、Google マップが 3D で表示される。v2 を利用した
クーポン取得アプリは、3D 描写機能を使用することで、込み入った店舗や道が 3D で表示
され、利用者に正確に情報を伝えることができる。v2 の 3D 描写機能はデフォルトで有効
に設定されているためプログラムに記述する必要がない。だが、v1 と v2 は、API の設計
思想が違うため互換性がない。例えば、v1 では、MapView クラスにある OverlayItem を
使 用 し マ ー カ ー 表 示 を し て い た が 、 v2 で は MapView ク ラ ス が 無 く な り 、
GoogleMap.addMarker を 使 い マ ー カ ー を 表 示 す る 。 GoogleMap.addMarker に は
GoogleMap から Marker オブジェクトを生成する仕組みである。そのため、今回開発した
GoogleMapsAPI を利用した Android 用クーポン取得アプリには、v2 を導入することがで
きても簡単には利用できない(図4-1参照)。したがって、ピン情報をマップ上に重ねて
表示する設計を,複数のマーカ―を同一 View に表示する設計へ変更する必要がある。
図4-1 地図 3D 表示
引用:Google Maps Andrid API v2 を使うサンプルコード[4]
18
第5章
まとめ
第5.1節
全体まとめ
スマートフォンが普及した現在、それにともない多種多様なアプリも存在している。
様々なアプリを組み合わせて使用することで、生活を快適にすることができる。便利なア
プリを活用して地域貢献できる GoogleMapsAPI を利用したクーポン出力アプリを提案し
た。開発したアプリは、GPS・フリーワード検索が可能であり、地図上に出力された PIN
画像を描写し、地図画面下のリストビューには PIN 表示された店舗の名前を表示している。
このアプリは、都市部の店舗だけでなく地方の店舗も探すことができ、地方でもクーポン
で集客が可能となる。地域経済を良くすることができる。
第5.2節 今後の課題
今回開発したクーポン出力プログラムアプリは、地図アプリと Web 上のクーポン、この
2つを組み合わせることで成り立っている。開発したアプリの魅力は、現在地・土地など
から Web 上に存在するクーポン出力が可能としていることである。今回は、HotPepper
グルメから店情報を参照し開発を行ったが、もっと幅広いクーポンアプリからの情報を参
照することができれば、より便利なアプリとなる。たとえば、ぐるなびアプリ・ラーメン
なうアプリなど複数のアプリから情報を参照することができれば、沢山のクーポンを出力
することが可能である。装飾・雑貨店などクーポンアプリから店情報を参照することがで
きれば、今回開発したアプリは、装飾・雑貨・飲食などカテゴリー分けでクーポン出力を
行うマルチなクーポン出力プログラムアプリへ発展させる。
19
参考文献
[1] http://www.mcdonalds.co.jp/.
[2] http://www.uniqlo.com/jp/?gclid=CJyGyb-iprQCFWY8pgod9k8AwQ
[3]
https://developers.google.com/maps/documentation/android/v1/maps-API-signup?
hl=ja.
[4] http://www.nilab.info/z3/20121221_01.html
.
20
謝辞
いつも笑顔で……菊池祐希氏に感謝します。いつもアウトラインギリギリを爆走し私た
ちに落ちる寸前を常に照らし続けた現同期で4月から後輩の北川照樹氏に感謝しま
す。”TAKUMI.text not found 404”でしたね内匠航一氏には感謝いたします。結婚おめで
とうございます竹田尚史氏。軽音部でした……ね?中瀬広宣氏に感謝いたします。西大輝
氏へ卒論を書いている最中に AKB のライブを見ていたことを黙っていてくださった仙田
さんや松谷さん、卒業論文の添削を後輩にさせ素材を作らされた臼杵氏に感謝してくださ
い。自衛隊に入るといい、誰からも冷たい目を向けられていた播本佳大三等兵へあなたの
趣味はそこでも理解されそうにないですけど感謝しています。えっと、あの……え、え
……平田滉陽氏には感謝します。今年一回も会わなかった松本有貴氏には感謝します。い
つもゼミの H さんと H さんに狙われていたアイドル兼ペットの同志三好健太氏に感謝を
送ります。あと、寺杣直也氏へ感謝します。基礎プログラムを作成してくださった仙田友
久氏には感謝いたします。オープンキャンパスのとき一緒にチラシ配りなどをしていただ
き福本昌生氏には感謝いたします。卒業論文の添削など様々なことを協力し教えてくだ
さった松谷栄輝氏には感謝します。最後に自ら努力し自ら調べ自ら勉強する大切さを教え
てくださった花川典子先生には多大な感謝を送ります。
21