C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

Google Maps Android API v2

Googleマップに画像をオーバーレイ表示するには, GroundOverlayOptionsクラスを利用する.

画像のオーバーレイ表示

  • MainActivity.java
    • GroundOverlayOptionsのインスタンスを生成する.
    • BitmapDescriptorFacotry#fromResourceメソッドで, リソースか画像を取得する.
    • GroundOverlayOptions#imageメソッドで, オーバーレイする画像を設定する.
    • GroundOverlayOptions#anchorメソッドで, 画像のどこを基準(ここでは画像中央)とするか設定する.
    • GroundOverlayOptions#positionメソッドで, 画像の表示位置及び範囲を設定する.
    • GoogleMap#addGroundOverlayメソッドで, Googleマップに画像をオーバーレイ表示する.
    • GroundOverlay#setTransparencyメソッドで, α値(0.0:不透明〜1.0:透明)を設定する.
package com.moonlight_aska.android.googlemapv2;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.GroundOverlay;
import com.google.android.gms.maps.model.GroundOverlayOptions;
import com.google.android.gms.maps.model.LatLng;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends FragmentActivity {
  // 六甲山:北緯34度46分41秒, 東経135度15分49秒
  private double mLatitude = 34.0d + 46.0d/60 + 41.0d/(60*60);
  private double mLongitude = 135.0d + 15.0d/60 + 49.0d/(60*60);
  private GoogleMap mMap = null;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mMap = ( (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map) ).getMap();
    if (mMap != null) {
      LatLng location = new LatLng(mLatitude, mLongitude);
      CameraPosition cameraPos = new CameraPosition.Builder()
        .target(location).zoom(12.0f)
        .bearing(0).build();
      mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPos));
      // 画像及び位置情報設定
      GroundOverlayOptions options = new GroundOverlayOptions();
      BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.snow);
      options.image(bitmap);
      options.anchor(0.5f,0.5f);
      options.position(location, 3000.0f, 3000.0f);
      // マップに画像をオーバーレイ
      GroundOverlay overlay = mMap.addGroundOverlay(options);
      overlay.setTransparency(0.3f);
    }
  }
}
  • 動作例
SHARP SH-03C / Android 2.2

                拡大




 

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

Firebase(2)

AD



管理人/副管理人のみ編集できます