カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

GoogleMap Android API v2 使い方#05

今回はマーカーをタップした時の処理をカスタマイズしてみましょう。
GoogleMapのオブジェクト(mMap)は作成済とします。

マーカータップ時の処理カスタマイズ

まずはマーカーを追加します。
詳細なマーカーの追加方法についてはGoogleMap Android API v2 使い方#02を参照ください。

marker = mMap.addMarker(new MarkerOptions()
    .position(new LatLng(34.7, 135.5))
    .snippet("スニペット"));

マーカーのイベントをカスタマイズし、マーカーのIDとスニペットをトーストに表示してみましょう。

mMap.setOnMarkerClickListener(new OnMarkerClickListener() {

    @Override
    public boolean onMarkerClick(Marker marker) {

        Toast.makeText(getApplicationContext(),
            marker.getId() + "\r\n" + marker.getSnippet(),
            Toast.LENGTH_LONG).show();

        return false;

    }

});

getIdメソッドはm0、m1…とマーカーのIDが返されます。
getSnippetメソッドは、マーカー作成時に設定したSnippetが返されます。

この機能を実装するとInfoWindowは表示されなくなります。
続きを読む…»

2,281 views

Playストアのアプリページへ移動する

パッケージ名を指定してPlayストアのアプリページへ移動することができます。

方法としては指定したURLをブラウザで開くのと同じやり方です。

String url = "market://details?id=com.google.android.gms&hl=ja";

URLの「details?id=」に続き、パッケージ名を入力します。

try{

      Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
      startActivity(i);

} catch (Exception e) {

  e.printStackTrace();

}
2,250 views

住所から座標を取得 GoogleMapAPI Geocoder

GoogleMap APIを利用して、住所から座標を取得します。

String search_key = "座標を取得したい住所";

ジオコーダーオブジェクトのインスタンスを生成

Geocoder gcoder = new Geocoder(this, Locale.getDefault());

結果を返してほしい件数を指定します。

int maxResults = 1;

結果を代入する変数を宣言

List<Address> lstAddr;

実際に取得してみましょう。

// 位置情報の取得
lstAddr = gcoder.getFromLocationName(search_key, maxResults);

if (lstAddr != null && lstAddr.size() > 0) {
    // 緯度・経度取得
    Address addr = lstAddr.get(0);
    double latitude = addr.getLatitude();
    double longitude = addr.getLongitude();

    Toast.makeText(this, "位置\n緯度:" + latitude + "\n経度:" + longitude, Toast.LENGTH_LONG).show();
}

例外処理は省いていますが、IllegalArgumentExceptionとIOExceptionが発生する可能性があります。
続きを読む…»

6,835 views

adb(Android Debug Bridge)

adbはAndroid SDKに含まれるツールです。

開発環境の導入時に環境変数PATHにAndroid SDKツールまでのパスが登録されていれば作業が簡単です。
(Android SDKをインストールしたディレクトリ)\platform-tools

接続されているデバイスを確認する

# adb devices
List of devices attached
emulator-5554        device

アプリケーションを指定した端末にインストール

# adb -s emulator-5554 install example.apk

-s [serialNumber]:指定した端末に対してコマンドを実行する
install [-r] [path_to_apk]:指定したアプリをインストールする
-rオプションを付けるとデータを保持したまま、上書きインストール
続きを読む…»

1,452 views

連想配列を使用する Android

連想配列を使用するにはHashtableや、HashMapを使用します。
双方ともMapインターフェイスを実装しているjava.utilのクラスです。
他にもありますが、主だったものをご紹介します。

クラス名 特徴
HashMap 順不同
TreeMap キーの昇順
Hashtable キーの降順
LinkedHashMap 追加した順番

ここではHashMapを例にやってみましょう。

まずは宣言

HashMap<String, String> hashmap;

変数の初期化

hashmap = new HashMap<String, String>();

データを追加します。

hashmap.put("key", "value");

キーを指定し、値を取得します。

hashmap.get("key");
4,154 views