สร้างแอป Android ที่แสดงแผนที่โดยใช้ Google Maps View เทมเพลตสำหรับ Android Studio หากคุณมีโปรเจ็กต์ Android Studio เดิมอยู่แล้ว เมื่อต้องการตั้งค่า โปรดดูตั้งค่าโปรเจ็กต์ Android Studio
การเริ่มต้นอย่างรวดเร็วนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่คุ้นเคยกับ การพัฒนา Android ด้วย Kotlin หรือ Java
เกี่ยวกับสภาพแวดล้อมในการพัฒนาซอฟต์แวร์
การเริ่มต้นอย่างรวดเร็วนี้พัฒนาขึ้นโดยใช้ Android Studio Hedgehog และAndroid ปลั๊กอิน Gradle เวอร์ชัน 8.2
ตั้งค่าอุปกรณ์ Android
หากต้องการเรียกใช้แอปที่ใช้ Maps SDK สำหรับ Android คุณต้องทำให้แอปใช้งานได้ในอุปกรณ์ Android หรือ Android โปรแกรมจำลองที่ใช้ Android 5.0 ขึ้นไปและมี Google API
- หากต้องการใช้อุปกรณ์ Android ให้ทำตามคำแนะนำที่ เรียกใช้แอปในอุปกรณ์ฮาร์ดแวร์
- หากต้องการใช้โปรแกรมจำลองของ Android คุณสามารถสร้างอุปกรณ์เสมือนและติดตั้งโปรแกรมจำลองโดยใช้ โปรแกรมจัดการอุปกรณ์เสมือน (AVD) สำหรับ Android ที่มาพร้อมกับ Android Studio
สร้างโปรเจ็กต์ Google Maps ใน Android Studio
มีการเปลี่ยนแปลงขั้นตอนการสร้างโปรเจ็กต์ Google Maps ใน Android Studio ใน Flamingo และ Android Studio รุ่นต่อๆ ไป
เปิด Android Studio แล้วคลิกโปรเจ็กต์ใหม่ใน หน้าต่างยินดีต้อนรับสู่ Android Studio
ใต้หมวดหมู่โทรศัพท์และแท็บเล็ต ในหน้าต่างโปรเจ็กต์ใหม่ เลือกไม่มีกิจกรรม แล้วคลิกถัดไป
กรอกแบบฟอร์มโปรเจ็กต์ใหม่ให้ครบถ้วน
ตั้งค่าภาษาเป็น Java หรือ Kotlin ทั้ง 2 ภาษาได้รับการสนับสนุนอย่างสมบูรณ์โดย Maps SDK สำหรับ Android ดูข้อมูลเพิ่มเติมเกี่ยวกับ Kotlin ได้ที่ พัฒนาแอป Android ด้วย Kotlin
ตั้งค่า SDK ขั้นต่ำเป็นเวอร์ชัน SDK ที่เข้ากันได้กับอุปกรณ์ทดสอบของคุณ คุณต้องเลือกเวอร์ชันที่สูงกว่าเวอร์ชันขั้นต่ำที่ Maps SDK สำหรับ Android เวอร์ชัน 19.0.x ซึ่งก็คือ Android API ระดับ 21 ("Lollipop"; Android 5.0) ขึ้นไป โปรดดูบันทึกประจำรุ่นสำหรับ ข้อมูลล่าสุดเกี่ยวกับข้อกำหนดเวอร์ชัน SDK
ตั้งค่าภาษาการกำหนดค่าบิลด์เป็น Kotlin DSL หรือ Groovy DSL ข้อมูลโค้ดสำหรับภาษาการกำหนดค่าบิลด์ทั้ง 2 ภาษาจะแสดงตามตัวอย่างต่อไปนี้ กระบวนการ
คลิกเสร็จสิ้น
Android Studio เริ่มต้น Gradle และสร้างโปรเจ็กต์ อาจใช้เวลาสักครู่
เพิ่มกิจกรรมใน Google Maps View ดังนี้
- คลิกขวาที่โฟลเดอร์
app
ในโปรเจ็กต์ เลือก New > Google กิจกรรมใน Google Maps View
ในกล่องโต้ตอบกิจกรรม Android ใหม่ ให้เลือก ช่องทำเครื่องหมายกิจกรรมของ Launcher
เลือกเสร็จสิ้น
สำหรับข้อมูลเพิ่มเติม โปรดดู เพิ่มโค้ดจากเทมเพลต
- คลิกขวาที่โฟลเดอร์
เมื่อสร้างเสร็จแล้ว Android Studio จะเปิด
AndroidManifest.xml
และMapsActivity
ไฟล์ กิจกรรมอาจมีชื่ออื่น คือการตั้งค่าที่คุณกำหนดค่าไว้ระหว่างการตั้งค่า
ตั้งค่าโปรเจ็กต์ Google Cloud
ทำตามขั้นตอนการตั้งค่า Cloud Console ที่จำเป็นโดยคลิก จากแท็บต่อไปนี้
ขั้นตอนที่ 1
คอนโซล
-
ในคอนโซล Google Cloud ให้คลิก สร้างโปรเจ็กต์เพื่อเริ่มสร้าง Cloud ใหม่
-
ตรวจสอบว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์แล้ว ยืนยันว่าเปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์แล้ว
Google Cloud เสนอช่วงทดลองใช้โดยคิดค่าบริการ $0.00 ช่วงทดลองใช้จะหมดอายุเมื่อครบ 90 วัน วันหรือหลังจากที่บัญชีมีค่าใช้จ่ายเกิดขึ้น 12, 000 บาท แล้วแต่ว่าอย่างใดจะถึงก่อน ยกเลิก ตลอดเวลา Google Maps Platform มีเครดิต $200 ต่อเดือนแบบตามรอบ สำหรับข้อมูลเพิ่มเติม ดูข้อมูลได้ที่ เครดิตของบัญชีสําหรับการเรียกเก็บเงินและการเรียกเก็บเงิน
Cloud SDK
gcloud projects create "PROJECT"
อ่านเพิ่มเติมเกี่ยวกับ SDK ของ Google Cloud การติดตั้ง Cloud SDK และคำสั่งต่อไปนี้
ขั้นตอนที่ 2
หากต้องการใช้ Google Maps Platform คุณต้องเปิดใช้ API หรือ SDK ที่วางแผนจะใช้กับโปรเจ็กต์
คอนโซล
Cloud SDK
gcloud services enable \ --project "PROJECT" \ "maps-android-backend.googleapis.com"
อ่านเพิ่มเติมเกี่ยวกับ SDK ของ Google Cloud การติดตั้ง Cloud SDK และคำสั่งต่อไปนี้
ขั้นตอนที่ 3
ขั้นตอนนี้จะดำเนินการตามขั้นตอนการสร้างคีย์ API เท่านั้น หากคุณใช้คีย์ API ใน เราขอแนะนำเป็นอย่างยิ่งให้คุณจำกัดคีย์ API ของคุณ ดูข้อมูลเพิ่มเติม ในหน้าการใช้คีย์ API เฉพาะผลิตภัณฑ์
คีย์ API คือตัวระบุที่ไม่ซ้ำกัน ซึ่งจะตรวจสอบสิทธิ์คำขอที่เชื่อมโยงกับโปรเจ็กต์ของคุณ สำหรับการใช้งานและการเรียกเก็บเงิน คุณต้องมีคีย์ API อย่างน้อย 1 รายการที่เชื่อมโยงกับโปรเจ็กต์ของคุณ
วิธีสร้างคีย์ API
คอนโซล
-
ไปที่ Google Maps Platform > ข้อมูลเข้าสู่ระบบ
-
ในหน้าข้อมูลเข้าสู่ระบบ ให้คลิกสร้างข้อมูลเข้าสู่ระบบ > คีย์ API
กล่องโต้ตอบคีย์ API ที่สร้างจะแสดงคีย์ API ที่สร้างขึ้นใหม่ -
คลิกปิด
คีย์ API ใหม่จะปรากฏในหน้าข้อมูลเข้าสู่ระบบในส่วนคีย์ API
(อย่าลืมจำกัด API ก่อนที่จะนำไปใช้ในเวอร์ชันที่ใช้งานจริง)
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
อ่านเพิ่มเติมเกี่ยวกับ SDK ของ Google Cloud การติดตั้ง Cloud SDK และคำสั่งต่อไปนี้
เพิ่มคีย์ API ลงในแอป
ส่วนนี้จะอธิบายวิธีจัดเก็บคีย์ API เพื่อให้ใช้อ้างอิงได้อย่างปลอดภัยโดย
แอปของคุณ คุณไม่ควรตรวจสอบคีย์ API ในระบบควบคุมเวอร์ชัน เราจึงขอแนะนำ
จัดเก็บไว้ในไฟล์ secrets.properties
ซึ่งอยู่ในไดเรกทอรีรากของ
ดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ secrets.properties
ได้ที่
ไฟล์คุณสมบัติ Gradle
เราขอแนะนำให้คุณใช้ ปลั๊กอินข้อมูลลับ Gradle สำหรับ Android
วิธีติดตั้งปลั๊กอิน Secrets Gradle สำหรับ Android ในโปรเจ็กต์ Google Maps
-
ใน Android Studio ให้เปิด
build.gradle.kts
หรือbuild.gradle
ระดับบนสุด และเพิ่มโค้ดต่อไปนี้ลงในเอลิเมนต์dependencies
ใต้buildscript
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
ดึงดูด
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
เปิดไฟล์
build.gradle.kts
หรือbuild.gradle
ระดับโมดูลและเพิ่ม รหัสต่อไปนี้ลงในเอลิเมนต์plugins
Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
ดึงดูด
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- ในไฟล์
build.gradle.kts
หรือbuild.gradle
ระดับโมดูล ให้ตรวจสอบว่า มีการตั้งค่าtargetSdk
และcompileSdk
เป็น 34 - บันทึกไฟล์และ ซิงค์โปรเจ็กต์กับ Gradle
-
เปิดไฟล์
secrets.properties
ในไดเรกทอรีระดับบนสุด แล้วเพิ่ม โค้ดต่อไปนี้ แทนที่YOUR_API_KEY
ด้วยคีย์ API จัดเก็บคีย์ของคุณในไฟล์นี้ เนื่องจากsecrets.properties
ถูกยกเว้นจากการเช็คอินในการควบคุมเวอร์ชัน ระบบMAPS_API_KEY=YOUR_API_KEY
- บันทึกไฟล์
-
สร้างไฟล์
local.defaults.properties
ในไดเรกทอรีระดับบนสุด เป็นไฟล์secrets.properties
แล้วเพิ่มโค้ดต่อไปนี้MAPS_API_KEY=DEFAULT_API_KEY
วัตถุประสงค์ของไฟล์นี้คือให้ตำแหน่งข้อมูลสำรองสำหรับคีย์ API หาก ไม่พบไฟล์
secrets.properties
เพื่อไม่ให้บิลด์ล้มเหลว เหตุการณ์นี้อาจเกิดขึ้นได้หาก คุณโคลนแอปจากระบบควบคุมเวอร์ชันที่ยกเว้นsecrets.properties
และ คุณยังไม่ได้สร้างไฟล์secrets.properties
ในเครื่องเพื่อระบุ คีย์ API - บันทึกไฟล์
-
ในไฟล์
AndroidManifest.xml
ให้ไปที่com.google.android.geo.API_KEY
และอัปเดตandroid:value attribute
หากไม่มีแท็ก<meta-data>
ให้สร้างเป็นแท็กย่อยของ<application>
<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
หมายเหตุ
com.google.android.geo.API_KEY
คือชื่อข้อมูลเมตาที่แนะนำ สำหรับคีย์ API คีย์ที่ใช้ชื่อนี้สามารถใช้เพื่อตรวจสอบสิทธิ์กับ API บน Google Maps บนแพลตฟอร์ม Android ซึ่งรวมถึง Maps SDK สำหรับ Android สำหรับความเข้ากันได้แบบย้อนหลัง API ยัง รองรับชื่อcom.google.android.maps.v2.API_KEY
มรดกนี้ ชื่ออนุญาตการตรวจสอบสิทธิ์กับ Android Maps API v2 เท่านั้น แอปพลิเคชันสามารถ ระบุชื่อข้อมูลเมตาของคีย์ API เพียงชื่อเดียว หากระบุไว้ทั้งคู่ API มีข้อยกเว้น -
ใน Android Studio ให้เปิด
build.gradle.kts
ระดับโมดูลหรือbuild.gradle
แล้วแก้ไขพร็อพเพอร์ตี้secrets
หาก ไม่มีพร็อพเพอร์ตี้secrets
โปรดเพิ่มแก้ไขคุณสมบัติของปลั๊กอินเพื่อตั้งค่า
propertiesFileName
เป็นsecrets.properties
ตั้งค่าdefaultPropertiesFileName
เป็นlocal.defaults.properties
และตั้งค่าพร็อพเพอร์ตี้อื่นๆKotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
ดึงดูด
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the local.properties file. // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
ดูโค้ด
ตรวจสอบโค้ดที่เทมเพลตให้ไว้ โดยเฉพาะอย่างยิ่ง โปรดดูที่ ไฟล์ในโปรเจ็กต์ Android Studio
ไฟล์กิจกรรมบนแผนที่
ไฟล์กิจกรรมแผนที่เป็นกิจกรรมหลักของแอป และ
มีโค้ดสำหรับจัดการและแสดงแผนที่ โดยค่าเริ่มต้น ไฟล์ที่
ระบุว่ากิจกรรมมีชื่อว่า MapsActivity.java
หรือหากคุณตั้งค่า Kotlin เป็น
ภาษาของแอปMapsActivity.kt
องค์ประกอบหลักของกิจกรรมบนแผนที่ ได้แก่
ออบเจ็กต์
SupportMapFragment
จะจัดการ วงจรของแผนที่และเป็นองค์ประกอบระดับบนสุดของ UI ของแอปออบเจ็กต์
GoogleMap
ให้สิทธิ์เข้าถึงข้อมูลแผนที่และ นี่คือคลาสหลักของ Maps SDK สำหรับ Android ออบเจ็กต์แผนที่ คำแนะนำนี้จะอธิบายออบเจ็กต์SupportMapFragment
และGoogleMap
ในข้อมูลเพิ่มเติม รายละเอียดฟังก์ชัน
moveCamera
จะตั้งศูนย์กลางของแผนที่ไว้ที่LatLng
พิกัดสำหรับซิดนีย์ออสเตรเลีย การตั้งค่าแรกที่จะ กำหนดค่าเมื่อมีการเพิ่มแผนที่ มักจะเป็นการตั้งค่าตำแหน่งและกล้องบนแผนที่ เช่น มุมการดู การวางแนวแผนที่ และระดับการซูม โปรดดู ดูรายละเอียดในคำแนะนำเกี่ยวกับกล้องและมุมมองฟังก์ชัน
addMarker
จะเพิ่มเครื่องหมายลงในพิกัดสำหรับ ซิดนีย์ โปรดดูรายละเอียดในคู่มือเครื่องหมาย
ไฟล์ Gradle โมดูล
ไฟล์โมดูล build.gradle.kts
มีทรัพยากร Dependency ของแมปต่อไปนี้ ซึ่ง
Maps SDK สำหรับ Android จำเป็นต้องใช้
dependencies { // Maps SDK for Android implementation("com.google.android.gms:play-services-maps:19.0.0") }
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการทรัพยากร Dependency ของ Maps โปรดดูการกำหนดเวอร์ชัน
ไฟล์เลย์เอาต์ XML
ไฟล์ activity_maps.xml
คือไฟล์เลย์เอาต์ XML ที่กำหนดองค์ประกอบ
ในโครงสร้าง UI ของแอป ไฟล์จะอยู่ในไดเรกทอรี res/layout
ไฟล์ activity_maps.xml
ประกาศส่วนย่อยที่มีข้อมูลต่อไปนี้
องค์ประกอบ:
tools:context
ตั้งค่ากิจกรรมเริ่มต้นของส่วนย่อย เป็นMapsActivity
ซึ่งกำหนดไว้ในไฟล์กิจกรรมแผนที่android:name
ตั้งชื่อคลาสของส่วนย่อยเป็นSupportMapFragment
ซึ่งเป็นประเภทส่วนย่อยที่ใช้ในกิจกรรมแผนที่
ไฟล์เลย์เอาต์ XML มีโค้ดต่อไปนี้
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
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" />
ติดตั้งใช้งานและเรียกใช้แอป
เมื่อคุณเรียกใช้แอปสำเร็จ ระบบจะแสดงแผนที่ซึ่งมีจุดศูนย์กลางอยู่ที่ ซิดนีย์ ออสเตรเลีย โดยทำเครื่องหมายไว้บนเมืองตามที่แสดงในภาพหน้าจอต่อไปนี้
ในการติดตั้งใช้งานและเรียกใช้แอป ให้ทำดังนี้
- ใน Android Studio ให้คลิกตัวเลือกเมนูเรียกใช้ (หรือไอคอนปุ่มเล่น) เพื่อ เรียกใช้แอปของคุณ
- เมื่อได้รับข้อความแจ้งให้เลือกอุปกรณ์ ให้เลือกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้
- เลือกอุปกรณ์ Android ที่เชื่อมต่อกับคอมพิวเตอร์ของคุณ
- หรือเลือกปุ่มตัวเลือกเปิดโปรแกรมจำลอง แล้วเลือก อุปกรณ์เสมือนที่คุณตั้งค่าไว้
- คลิกตกลง Android Studio จะเริ่ม Gradle เพื่อสร้างแอป จากนั้น แสดงผลบนอุปกรณ์หรือโปรแกรมจำลองของคุณ แอปอาจใช้เวลาหลายนาที เปิดตัว
ขั้นตอนถัดไป
ตั้งค่าแผนที่: เอกสารนี้ อธิบายวิธีการตั้งค่าเริ่มต้นและรันไทม์สำหรับแผนที่ของคุณ เช่น เป็นตำแหน่งของกล้อง ประเภทแผนที่ คอมโพเนนต์ UI และท่าทางสัมผัส
เพิ่มแผนที่ลงในแอป Android (Kotlin): Codelab นี้ แนะนำคุณเกี่ยวกับแอปที่สาธิตฟีเจอร์เพิ่มเติมบางอย่างของ Maps SDK สำหรับ Android
ใช้ไลบรารี Maps Android KTX ไลบรารีส่วนขยาย Kotlin (KTX) นี้ช่วยให้คุณใช้ประโยชน์จาก ฟีเจอร์ภาษา Kotlin ขณะใช้ Maps SDK สำหรับ Android