GoogleMap上にアイコンを表示することが出来ました。しかし、この状態ではどれが何のバス停なのか分からないので、バス停のアイコンにタッチすることでそのバス停の
名前を表示する機能を加えました。
 表示には「AlertDialog」を使用しました。この表示方法は詳しくは触れていませんがメモ帳アプリを作成時に使用しています。→ メモ帳アプリ
 *書籍を参照してください。



PinItemizedOverlay.java


package jp.co.cqpub.MyMap;
import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;


public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem> {
        private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
    private Context mContext;

    public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
        super( boundCenterBottom(defaultMarker) );
        mContext = context;
        populate(); // Android のバグ回避用
    }

        public void addOverlay(OverlayItem overlay) {
            mOverlays.add(overlay);
            populate();
        }

        @Override
        protected OverlayItem createItem(int i) {
                // TODO 自動生成されたメソッド・スタブ
                  return mOverlays.get(i);
        }

        @Override
        public int size() {
                // TODO 自動生成されたメソッド・スタブ
                  return mOverlays.size();
        }

        // アラートダイアログのキャンセルが可能かどうかを設定します
        dialog.setCancelable(true);
        AlertDialog alertDialog = dialog.create();
        // アラートダイアログを表示します
        dialog.show();
        return true;
                }

        }

 上記のプログラムの「return true;」の前に書かれた3行を追加するだけで「AlertDialog」を表示することが出来ます。
 そして、メインの「MyMapActivity.java」に戻り、アイコンの表示に関するプログラムを追加します。


MyMapActivity.java


        OverlayItem overlayitem   = new OverlayItem(a, "穂積駅前","  →穂積市役所前");
        OverlayItem overlayitem2  = new OverlayItem(b, "穂積市役所前", "穂積駅前←  →穂積北中学校前");
        OverlayItem overlayitem3  = new OverlayItem(c, "穂積北中学校前","穂積市役所前←  →高屋太子");
        OverlayItem overlayitem4  = new OverlayItem(d, "高屋太子", "穂積北中学校前←  →高屋");
        OverlayItem overlayitem5  = new OverlayItem(e, "高屋", "高屋太子←  →柱本南");
        OverlayItem overlayitem6  = new OverlayItem(f, "柱本南","高屋←  →北方柱本");
        OverlayItem overlayitem7  = new OverlayItem(g, "北方柱本", "柱本南←  →北方西小学校前");
        OverlayItem overlayitem8  = new OverlayItem(h, "北方西小学校前","北方柱本←  →北方バスターミナル");
        OverlayItem overlayitem9  = new OverlayItem(i, "北方バスターミナル", "北方西小学校前←  →本巣消防署前");
        OverlayItem overlayitem10 = new OverlayItem(j, "本巣消防署前", "北方バスターミナル←  →高砂");
        OverlayItem overlayitem11 = new OverlayItem(k, "高砂","本巣消防署前←  →糸貫分庁舎・モレラ岐阜南口前");
        OverlayItem overlayitem12 = new OverlayItem(l, "糸貫分庁舎・モレラ岐阜南口前", "高砂←  →土貴野");
        OverlayItem overlayitem13 = new OverlayItem(m, "土貴野","糸貫分庁舎・モレラ岐阜南口前←  →薮川橋西");
        OverlayItem overlayitem14 = new OverlayItem(n, "薮川橋西", "土貴野←  →黒野八幡町");
        OverlayItem overlayitem15 = new OverlayItem(o, "黒野八幡町", "薮川橋西←  →大野バスセンター");
        OverlayItem overlayitem16 = new OverlayItem(p, "大野バスセンター", "黒野八幡町←  ");
 
 ()内に記されたものは、([表示する座標],"[AlertDialogの1行目に表示する文字]","[AlertDialogの2行目に表示する文字]")となっています。今回、1行目にそのバス停の名前、2行目に前のバス停と次のバス停の名前を表示しました。



戻る