איך יוצרים אפליקציה ל-Android שמציגה מפה באמצעות התבנית של תצוגות מפות Google ל-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, אפשר ליצור מכשיר וירטואלי ולהתקין את המהדמנת באמצעות מנהל המכשירים הווירטואליים של Android (AVD) שמגיע עם Android Studio.
יצירת פרויקט של מפות Google ב-Android Studio
התהליך ליצירת פרויקט של מפות Google ב-Android Studio השתנה בגרסה Flamingo ואילך של Android Studio.
פותחים את Android Studio ולוחצים על New Project בחלון Welcome to Android Studio.
בחלון New Project, בקטע Phone and Tablet, בוחרים באפשרות No Activity ולוחצים על Next.
ממלאים את הטופס New Project:
מגדירים את Language (שפה) ל-Java או ל-Kotlin. שתי השפות נתמכות במלואן ב-Maps SDK ל-Android. מידע נוסף על Kotlin זמין במאמר פיתוח אפליקציות ל-Android באמצעות Kotlin.
מגדירים את Minimum SDK לגרסת SDK שתואמת למכשיר הבדיקה. עליכם לבחור גרסה גבוהה יותר מהגרסה המינימלית שנדרשת על ידי Maps SDK לגרסה 19.0.x של Android, שהיא Android API ברמה 21 (Lollipop, Android 5.0) ואילך. במאמר בנושא הערות המוצר תוכלו למצוא את המידע העדכני ביותר לגבי דרישות הגרסה של ה-SDK.
מגדירים את שפת תצורת ה-build ל-Kotlin DSL או ל-Groovy DSL. קטעי קוד בשתי השפות של הגדרות ה-build מופיעים בתהליכים הבאים.
לוחצים על סיום.
Android Studio מפעילה את Gradle ומפתחת את הפרויקט. פעולה זו עשויה להימשך זמן מה.
מוסיפים את הפעילות של צפיות במפות Google:
- לוחצים לחיצה ימנית על התיקייה
app
בפרויקט. בוחרים באפשרות חדש > Google > פעילות צפיות במפות Google.
בתיבת הדו-שיח New Android Activity, מסמנים את התיבה Launcher Activity.
בוחרים באפשרות סיום.
למידע נוסף, ראו הוספת קוד מתבנית
- לוחצים לחיצה ימנית על התיקייה
בסיום ה-build, קובצי
AndroidManifest.xml
ו-MapsActivity
נפתחים ב-Android Studio. יכול להיות שהפעילות תופיע בשם אחר, אבל זה השם שהגדרתם במהלך ההגדרה.
הגדרת פרויקט ב-Google Cloud
כדי להשלים את שלבי ההגדרה הנדרשים של מסוף Cloud, לוחצים על הכרטיסיות הבאות:
שלב 1
המסוף
-
במסוף Google Cloud, בדף לבחירת הפרויקט לוחצים על Create Project כדי ליצור פרויקט חדש ב-Cloud.
-
הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. מוודאים שהחיוב מופעל בפרויקט.
ב-Google Cloud יש תקופת ניסיון ללא תשלום. תוקף תקופת הניסיון יפוג אחרי 90 יום או אחרי שיצטברו בחשבון חיובים בסך 300$, המוקדם מביניהם. תמיד אפשר לבטל. ב-Google Maps Platform יש זיכוי חודשי קבוע בסך 200$. למידע נוסף, ראו זיכויים בחשבון לחיוב וחיוב.
Cloud SDK
gcloud projects create "PROJECT"
מידע נוסף על Google Cloud SDK, על התקנת Cloud SDK ועל הפקודות הבאות:
שלב 2
כדי להשתמש בפלטפורמה של מפות Google, צריך להפעיל את ממשקי ה-API או ערכות ה-SDK שבהם אתם מתכננים להשתמש בפרויקט.
המסוף
Cloud SDK
gcloud services enable \ --project "PROJECT" \ "maps-android-backend.googleapis.com"
מידע נוסף על Google Cloud SDK, על התקנת Cloud SDK ועל הפקודות הבאות:
שלב 3
בשלב הזה יתבצע רק תהליך היצירה של מפתח ה-API. אם אתם משתמשים במפתח ה-API בסביבת הייצור, מומלץ מאוד להגביל את מפתח ה-API. מידע נוסף זמין בדף שימוש במפתחות API שספציפי למוצר.
מפתח ה-API הוא מזהה ייחודי שמאמת בקשות המשויכות לפרויקט שלכם לצורכי שימוש וחיובים. צריך להיות לפחות מפתח API אחד שמשויך לפרויקט.
כך יוצרים מפתח API:
המסוף
-
עוברים לדף פלטפורמת מפות Google > פרטי כניסה.
-
בדף Credentials, לוחצים על Create credentials > API key.
תיבת הדו-שיח API key created מציגה את מפתח ה-API החדש שיצרתם. -
לוחצים על סגירה.
מפתח ה-API החדש מופיע בדף Credentials בקטע API keys.
(חשוב לזכור להגביל את מפתח ה-API לפני שמשתמשים בו בסביבת הייצור).
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
מידע נוסף על Google Cloud SDK, על התקנת Cloud SDK ועל הפקודות הבאות:
הוספת מפתח ה-API לאפליקציה
בקטע הזה מוסבר איך לאחסן את מפתח ה-API כך שהאפליקציה תוכל להפנות אליו בצורה מאובטחת. לא מומלץ להוסיף את מפתח ה-API למערכת לניהול גרסאות, לכן מומלץ לאחסן אותו בקובץ secrets.properties
שנמצא בספריית השורש של הפרויקט. מידע נוסף על הקובץ secrets.properties
זמין במאמר קבצי מאפיינים של Gradle.
כדי לייעל את המשימה הזו, מומלץ להשתמש בפלאגין של Secrets Gradle ל-Android.
כדי להתקין את הפלאגין של Secrets Gradle ל-Android בפרויקט של מפות Google:
-
ב-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") } }
Groovy
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") }
Groovy
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, כדי שה-builds לא יכשלו אם הקובץ
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 בפלטפורמת Android, כולל 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.*" }
Groovy
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.
קובץ הפעילות במפות Google
קובץ הפעילות של המפות הוא הפעילות הראשית של האפליקציה, והוא מכיל את הקוד לניהול ולתצוגה של המפה. כברירת מחדל, השם של הקובץ שמגדיר את הפעילות הוא MapsActivity.java
. אם הגדרתם את Kotlin כשפת האפליקציה, השם הוא MapsActivity.kt
.
הרכיבים העיקריים של הפעילות במפות Google:
האובייקט
SupportMapFragment
מנהל את מחזור החיים של המפה והוא האלמנט ההורה של ממשק המשתמש של האפליקציה.האובייקט
GoogleMap
מספק גישה לנתוני המפה ולתצוגה שלה. זוהי הכיתה הראשית של Maps SDK ל-Android. במדריך אובייקטים במפה מתוארים האובייקטיםSupportMapFragment
ו-GoogleMap
בפירוט רב יותר.הפונקציה
moveCamera
ממרכזת את המפה לפי הקואורדינטותLatLng
של סידני, אוסטרליה. ההגדרות הראשונות שצריך להגדיר כשמוסיפים מפה הן בדרך כלל מיקום המפה והגדרות המצלמה, כמו זווית הצפייה, כיוון המפה ורמת הזום. פרטים נוספים זמינים במדריך מצלמה ותצוגה.הפונקציה
addMarker
מוסיפה סמן לקואורדינטות של סידני. פרטים נוספים זמינים במדריך בנושא סמנים.
קובץ Gradle של המודול
קובץ המודול build.gradle.kts
כולל את יחסי התלות הבאים במפות, שנדרשים ל-Maps SDK for Android.
dependencies { // Maps SDK for Android implementation("com.google.android.gms:play-services-maps:19.0.0") }
מידע נוסף על ניהול התלות במפות Google זמין במאמר ניהול גרסאות.
קובץ פריסה בפורמט XML
קובץ activity_maps.xml
הוא קובץ הפריסה בפורמט XML שמגדיר את המבנה של ממשק המשתמש של האפליקציה. הקובץ נמצא בספרייה res/layout
.
הקובץ activity_maps.xml
מכריז על קטע שכולל את הרכיבים הבאים:
tools:context
מגדיר את פעילות ברירת המחדל של הפלח כ-MapsActivity
, שמוגדר בקובץ הפעילות של מפות Google.android:name
מגדיר את שם הכיתה של הפלח כ-SupportMapFragment
, שהוא סוג הפלח שמשמש בקובץ הפעילות של מפות Google.
קובץ הפריסה של ה-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, לוחצים על אפשרות התפריט Run (או על סמל לחצן ההפעלה) כדי להריץ את האפליקציה.
- כשמוצגת בקשה לבחור מכשיר, בוחרים באחת מהאפשרויות הבאות:
- בוחרים את מכשיר Android שמחובר למחשב.
- לחלופין, לוחצים על לחצן הבחירה Launch emulator ובוחרים את המכשיר הווירטואלי שהגדרתם.
- לוחצים על אישור. Android Studio תפעיל את Gradle כדי ליצור את האפליקציה, ואז תציג את התוצאות במכשיר או במהדמ. יכול להיות שיחלפו כמה דקות עד שהאפליקציה תושק.
השלבים הבאים
הגדרת מפה: במסמך הזה מוסבר איך להגדיר את ההגדרות הראשוניות וההגדרות שפועלות במהלך זמן הריצה של המפה, כמו מיקום המצלמה, סוג המפה, רכיבי ממשק המשתמש והמחוות.
הוספת מפה לאפליקציה ל-Android (Kotlin): בקודלאב הזה מוסבר איך ליצור אפליקציה שממחישה כמה תכונות נוספות של Maps SDK ל-Android.
שימוש בספריית KTX של Maps ל-Android: ספריית התוספים (KTX) של Kotlin מאפשרת לכם ליהנות מכמה תכונות של שפת Kotlin בזמן השימוש ב-Maps SDK ל-Android.