【Android 入門開發實戰:口罩地圖】Google Map 範本學習(2)

 

【Android 入門開發實戰:口罩地圖】線上免費講義課程目錄

我們可以看看範例中,被加了哪些程式,即可以快速完成地圖標示的 APP。到時我們口罩地圖要加入 Google Map 地圖應用,如法炮製即可。

申請金鑰

前往 Google API Console,登入 Google 帳號,選擇新建專案或選舊有專案 → 憑證 → API 。即可以產生新的 key。

設定金鑰

產生新的金鑰後,可以點擊金鑰名,即可以進入該筆金鑰進行設定,可以更改金鑰名稱、綁定APP套件名稱與 SHA1 憑證指紋,防止別人冒用。

取得 SHA1 憑證指紋

快速取得 SHA1 憑證指紋方法,可以點擊 Android Studio 右側的 Gradle 視窗,展開後可以找到 app -> Tasks -> android -> signingReport,直接執行此腳本,即可以取得本機正式、測試 keystore 等相關憑證指紋。

輸出結果

添加 map 依賴庫 (dependencies)

implementation 'com.google.android.gms:play-services-maps:17.0.0'

加入金鑰

在 AndroidManifest.xml ,加入在 Google API Console 申請到的金鑰。<meta-data> 需加入在 <application> 裡面子項目中。

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="@string/google_maps_key" />

畫面佈局

在 activity_maps.xml 加入 fragment 標籤,最關鍵是 android:name 需要設定為:「com.google.android.gms.maps.SupportMapFragment」

 <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MapsActivity" />

MapsActivity

onCreate 起來獲取 map 的 View 為 mapFragment,然後呼叫 getMapAsync 初始化地圖。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_maps)

    val mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
    mapFragment.getMapAsync(this)
}

MapsActivity 實作 OnMapReadyCallback ,當 Map 準備好,則會回呼(CallBack) onMapReady,我們在裡面透過地圖提供的 addMarker 方法,加入一個雪梨的圖釘座標。並透過 moveCamera 方法,將手機地圖畫面移動到此處。

class MapsActivity : AppCompatActivity(), OnMapReadyCallback {

...
...
...

override fun onMapReady(googleMap: GoogleMap) {
    mMap = googleMap

    // Add a marker in Sydney and move the camera
    val sydney = LatLng(-34.0, 151.0)
    mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney"))
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
 }
}

輸出結果

參考資料

地圖物件
https://developers.google.com/maps/documentation/android-sdk/map?hl=zh-tw

這個網誌中的熱門文章

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

nano 文字編輯器

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)

16天記下7000單字

最新入門零基礎 Java 教學【從零開始學 Java 程式設計】Java教學課程目錄 (IntelliJ IDEA 開發教學)