Google Maps Android API v2
Google Play services
PATH: sdk/extras/google/google_play_services/google-play-services_lib/
API 金鑰
https://cloud.google.com/console/project
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mis"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="10" />
<permission android:name="com.mis.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
<uses-permission android:name="com.mis.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- External storage for caching. -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- My Location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name="com.mis.HomeClass"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="API KEY" />
</application>
</manifest>
map.xml
<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/fragment1"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
HomeClass.java
public class HomeClass extends FragmentActivity {
private GoogleMap map;
private double latitude = 25.0628975; //台北行天宮 北緯
private double longitude = 121.5334683; //台北行天宮 東經
private LatLng addr ;
private float zoom = 16;
public void onCreate( Bundle bundle)
{
super.onCreate(bundle);
setContentView(R.layout.map);
map = ((SupportMapFragment)
getSupportFragmentManager()
.findFragmentById(R.id.fragment1)).getMap();
zoom = 16; // 1~17
map.setMapType(GoogleMap.MAP_TYPE_NORMAL); //地圖模式
/*
GoogleMap.MAP_TYPE_NORMAL 道路地圖。
GoogleMap.MAP_TYPE_SATELLITE 衛星空照圖。
GoogleMap.MAP_TYPE_TERRAIN 地形圖。
GoogleMap.MAP_TYPE_HYBRID 道路地圖混合空照圖。
*/
map.setTrafficEnabled(true) ; //顯示交通資訊
map.setMyLocationEnabled(true); //顯示自己位置
UiSettings uis = map.getUiSettings();
uis.setZoomControlsEnabled(true); //顯示縮放按鈕
uis.setCompassEnabled(true); //顯示指北針
uis.setMyLocationButtonEnabled(true); //顯示自己位置按鈕
uis.setScrollGesturesEnabled(true); //開啟地圖捲動手勢
uis.setZoomGesturesEnabled(true); //開啟地圖縮放手勢
uis.setTiltGesturesEnabled(true); //開啟地圖傾斜手勢
uis.setRotateGesturesEnabled(true); //開啟地圖旋轉手勢
addr = new LatLng (latitude, longitude); //定義座標位置
MarkerOptions mk = new MarkerOptions(); //定義顯示標記
mk.position(addr); //定義標記的座標經緯度
mk.title("Test Title");
snippet = "Test Value";
mk.snippet(snippet);
mk.draggable(true);
map.addMarker(mk); //地圖加入此標記
//定義目前顯示畫面所在的位置和地圖縮放大小
map.moveCamera(CameraUpdateFactory.newLatLngZoom(addr, zoom));
}
}