Google Maps Android API v2 はGoogle Maps API v3 みたいにマーカーの追加が簡単!
Google Maps Android API v2 は Google Maps API v3 みたいに addMarker とかしていけるから楽
あと 吹き出しもデフォルトで使えるようになってるので便利
package com.maps; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import com.google.android.gms.maps.CameraUpdate; 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.BitmapDescriptorFactory; import com.google.android.gms.maps.model.CameraPosition; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; public class MainActivity extends FragmentActivity { private static final String TAG_MAP_FRAGMENT = "MAP_FRAGMENT"; private static final LatLng TOKYO = new LatLng(35.681382, 139.766084); private static final LatLng UnivAizu = new LatLng(37.523796,139.938733); private SupportMapFragment mMapFragment; private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 登録したタグから MapFragment を取得する(デバイス回転などの再生成対策) mMapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentByTag(TAG_MAP_FRAGMENT); if (mMapFragment == null) { // MapFragment がなければ作成する mMapFragment = SupportMapFragment.newInstance(); getSupportFragmentManager().beginTransaction() .add(android.R.id.content, mMapFragment, TAG_MAP_FRAGMENT) .commit(); } } @Override protected void onResume() { super.onResume(); if (mMap == null) { // MapFragment から GoogleMap を取得する mMap = mMapFragment.getMap(); if (mMap != null) { // マップをハイブリッド表示にする mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); // 屋内マップ表示を無効にする(標準は true) mMap.setIndoorEnabled(false); // 現在地表示ボタンを有効にする mMap.setMyLocationEnabled(true); // UiSettings にボタン表示設定があるが標準は true なので設定不要 // mMap.getUiSettings().setMyLocationButtonEnabled(true); // 東京駅にマーカーをつける mMap.addMarker(new MarkerOptions() .position(TOKYO) .title("東京駅") .snippet("2012年10月1日に復元工事が完了") .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_BLUE))); mMap.addMarker(new MarkerOptions() .position(UnivAizu) .title("天空都市") .snippet("定期的に浮上中") .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_BLUE))); // カメラの位置を東京駅に変える this.moveCameraToLatLng(false,TOKYO); // 地図の長押しでカメラを東京駅まで移動する mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() { @Override public void onMapLongClick(LatLng point) { moveCameraToLatLng(true,UnivAizu); } }); } } } /** * カメラを任意の位置に移動する * * @param isAnimation * アニメーション移動するかの判定。true でアニメーション移動。 * @param target * ターゲットの位置 LatLng型 */ private void moveCameraToLatLng(boolean isAnimation,LatLng target) { // カメラの位置情報を作成する CameraUpdate camera = CameraUpdateFactory .newCameraPosition(new CameraPosition.Builder() .target(target) .zoom(18.0f).build()); if (isAnimation) { // アニメーション移動する mMap.animateCamera(camera); } else { // 瞬間移動する mMap.moveCamera(camera); } } }
ほとんどここを参考
東京駅に最初はマーカーが置かれてる
地図を長押しすると会津大学へカメラ移動
MapFragment に現在地表示、マーカー表示などの機能を追加する - 戌印-INUJIRUSHI- (Androidあれこれ) -
http://inujirushi123.blog.fc2.com/blog-entry-100.html