●程式說明:
1.開啟一個新的專案,可以直接開google map activity,title可以自己設定
2.開啟會跳出這個頁面,要取得google maps api key
3.用模擬器測試時,會跳出google service要更新的訊息,然後按按鈕更新,但不要在這邊做更新會卡住
要到sdk manager=>勾選show package details=>下載google apis intel x86 atom system image
=>更新完以後要砍掉舊的模擬器,因為舊的模擬器是用舊版的模擬器影像檔做出來的
=>要重新安裝一次模擬器
=>目前版本不需要刪除模擬器就可以直接run
=>如果是用手機就可以直接更新
4.用模擬器測試,左下角出現google icon代表google service更新成功
5.解決api key的問題
a.複製網址貼到瀏覽器
b.取得api key
要建立憑證才能取得API金鑰
c.把金鑰貼到google_maps_api.xml檔中,位置如下:
d.用模擬器跑可以出現地圖
**注意上傳到github不要有金鑰資料
6.修改程式,在mainactivity中有如下程式碼:
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney)
.title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
**說明:
1.onMapReady:地圖載完之後要做的事
2.addMarker:加mark
3.moveCamera:移動相機到指定位置
7.調整內容
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng TaipieEgg = new LatLng(25.0513481, 121.5486728);
LatLng Hospital= new LatLng(25.0477974, 121.5486488);
mMap.addMarker(new MarkerOptions().position(TaipieEgg).title("台北小巨蛋"));
mMap.addMarker(new MarkerOptions().position(Hospital).title("台安醫院"));
mMap.moveCamera(CameraUpdateFactory
.newLatLngZoom(TaipieEgg,18));
}
**說明:
1.再加一個LatLng物件,多一個addMarker,可以同時顯示很多個marker
2.newLatLngZoom,可以設定放大倍率
3.可以查google maps api手冊中的MarkerOptions,裡面有很多方法可以用
*注意,在使用內建的Google Maps Activity可能會遇到下面這個問題
(出現訊息:inconvertible types; cannot cast 'android.support.v4.app.fragment' to 'com.google.android.gms.maps.SupportMapFragment' )
=>要把SupportFragmentManger轉為SupportMapFragment時,出現紅線顯示無法轉換type,這是因為在google paly-services-maps:17.0.0中,SupportMapFragmentnow 改為extends androidx.fragment.app.Fragment,而非android.support.v4.app.Fragment
=>解決辦法是把play-services-maps改為16.0.1或是把專案整合為androidX版本,這邊是直接改play service版本
●程式參考(GitHub):使用Android Studio內建Google Maps Activity建立Google Map
文章標籤
全站熱搜
留言列表