PracticU

Google Maps - User Location

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Google Maps - User Location
מילון מושגים:
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
ממשק - נקודת מגע בין רכיבים: ממשק משתמש שבו אדם מפעיל תוכנה, או ממשק תכנותי שמגדיר אילו פעולות רכיב אחד חושף לאחר.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
אמולטור - תוכנה שמחקה מכשיר או סביבה אחרת, למשל כדי להריץ ולבדוק אפליקציית מובייל על המחשב.

Google Maps - User Location
Google Maps - User Location מראה איך מציגים על המפה את המיקום הנוכחי של המשתמש, בעזרת יכולות המפה עצמה, בלי לנהל ידנית את הפרוביידרים.
השלבים העיקריים
1. הרשאה: מוסיפים לאפליקציה את ההרשאה ACCESS_FINE_LOCATION, ומבקשים אותה מהמשתמש בזמן ריצה.
2. ממשק פשוט: מוחקים את הכפתורים ומשאירים רק את הפרגמנט, שממלא את כל המסך.
3. הפעלת מיקום המשתמש: כשהמפה מוכנה קוראים ל-setMyLocationEnabled(true), ומגדירים מאזין עם setOnMyLocationChangeListener, כדי שהמפה תדווח על כל שינוי במיקום.
4. זום בפעם הראשונה בלבד: בשינוי הראשון המצלמה מתמקדת במיקום בזום 18, ונשמר אובייקט CameraUpdate. בשינויים הבאים משתמשים באותו אובייקט בלי זום, כדי שהמפה לא תתקרב ותתרחק בכל פעם.
5. הדגמה: במכשיר ובאמולטור רואים את המיקום מתעדכן כשמשנים את המיקום בהדמיה.
שימו לב
קוד הרישום מתבצע רק אחרי שהמשתמש אישר את ההרשאה. אם לא אישר, מוצגת הודעה.
בסיום ההרצאה הסטודנט יודע להציג את מיקום המשתמש על מפה של Google, ולדווח על שינויים בלי לזום מחדש בכל פעם.

פרקי ההרצאה: Google Maps - User Location

  1. 00:00

    קבלת מיקום המשתמש דרך Google Maps

  2. 00:39

    בקשת הרשאת מיקום מדויק

  3. 01:38

    הכנת MainActivity לקבלת המפה

  4. 02:39

    פונקציית registerLocationUpdates

  5. 04:12

    הפעלת שכבת המיקום של המשתמש במפה

  6. 05:11

    קבלת עדכוני מיקום והמרה ל-LatLng

  7. 06:07

    זום בפעם הראשונה בלבד

תמלול ההרצאה: Google Maps - User Location

הטקסט המלא של הדקות הראשונות בהרצאה «Google Maps - User Location» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אחרי שראינו איך אפשר להציג מיקומים ספציפיים על ידי Google Map Fragment אנחנו רוצים להציג על ה-Fragment את המיקום של המשתמש ובכדי להשיג את המיקום של המשתמש התשתית הזאת של Google Maps מאפשרת לנו להשיג את ה-Location של המשתמש מבלי שאנחנו שוב נצטרך להתעסק בעצמנו עם הפרוביידרים.

  2. 00:26

    אז בואו נראה איך עושים את זה. הדבר הראשון שאנחנו צריכים כאשר אנחנו רוצים לקבל את מיקום המשתמש זה כמובן לבקש הרשאה כזאת. אז בואו ניגש ל-users permission ונבקש את access fine location.

  3. 00:42

    ודבר ראשון אנחנו רוצים מיקום משתמש אנחנו חייבים permission לצורך כך. הדבר הבא שאנחנו רוצים זה לארגן את ה-UI פה כמו שצריך כי אנחנו כבר לא צריכים את הלחצנים האלה.

  4. 00:57

    אז בואו ניפטר מהם ולמעשה אם יש לנו רק פרגמנט אחת שאנחנו רוצים בכל הממשק שזה בעצם מה שאנחנו רוצים אז אנחנו יכולים שהתגית הראשית בעצם תהיה הפרגמנט הזאת אז בואו ניפטר פה מהוריינטיישן ורטיקל ניקח את שתי ההגדרות האלה של ה-id וה-name נדביק אותם כאן ולמעשה נגדיר את התגית הזאת כתגית ריקה בלי שום דבר אחר שקיים כאן.

  5. 01:35

    אז כל מה שיש לנו בתוך ה-Main Activity זה רק תגית Fragment שמציגה ממש כאן את כל המפה. ה-ID שלה זה ה-Fragment Map שאנחנו צריכים. אז כאמור אנחנו משנים את התרגיל הקודם ולכן אנחנו עוברים לכאן ל-Main Activity וב-Main Activity מה שאנחנו רוצים זה קודם כל את ה-Support Map Fragment ויש לנו אותה, אנחנו רוצים את ה-Google Map ויש לנו אותו,

  6. 02:06

    הנה כאן אנחנו משיגים את הפרגמנט וכאן אנחנו אומרים שברגע שהמפה מוכנה אנחנו רוצים שיתבצע קריאה ל-on-map-ready. אין לנו פה את כל הלחצנים האלה, ניפטר מהם ויש לנו כאן את ה-show-location שתכף נטפל בה.

  7. 02:29

    ומה שאנחנו רוצים לעשות ב-on-map-ready זה בעצם קודם כל לבקש את ה-permission מהמשתמש. אז יש לנו כאן בנוטפד הזה קוד שעבדנו איתו בעבר ויש לנו כאן בדיוק את האיף הזה עם רג'יסטר לוקיישן אפדייט שאנחנו צריכים בואו נעתיק אותו נדביק אותו פה כמובן שאנחנו צריכים לבנות את הפונקציה רג'יסטר לוקיישן אפדייט בואו נטפל

  8. 03:01

    רק בפאקג'ים הדרושים מניפסט נגדיר אותו. הנה אנחנו רואים את ה-request code register שאנחנו גם צריכים, הוא אמור להיות פה למעלה, הנה הוא, נחזור בחזרה לפה ונשתמש גם ב-request code register בכדי לבצע את הרישום.

  9. 03:25

    מה עוד אנחנו צריכים? Package Manager אנחנו צריכים, והנה הגדרנו אותו. אז חסכנו קצת כתיבה של קוד ופשוט עשינו copy-paste של דברים שעבדנו איתם בעבר.

  10. 03:39

    אנחנו רוצים כעת את ה-registered location. בואו ניגש, נחפש את ה-registered location שהייתה כאן, נעתיק אותה, קופי, נחזור בחזרה, נדביק אותה פה, ואין לנו צורך בכל אלה, ניפטר מהם, ומה שאנחנו כן רוצים לעשות זה לבקש את מיקום

  11. 04:09

    המשתמש על ידי ה-google map. גוגל מאפ שעבדנו איתו מקודם מאפשר לנו לקבל את מיקום המשתמש. איך עושים את זה? פונקציה ראשונה שאנחנו צריכים לקרוא לה זה set mylocation enabled true וזה אומר שאנחנו רוצים עכשיו לקבל דיווחים לגבי מיקום המשתמש.

  12. 04:32

    הפונקציה השנייה שאנחנו צריכים זה פשוט להירשם לדיווחים האלה וזה על ידי set on mylocation change listener אנחנו אנחנו רוצים לתת לו את ה-dis, וזה בעצם אומר שאנחנו בעצמנו רוצים לקבל את המיקום.

  13. 04:51

    בואו נלחץ על Alt-Enter, Make Main Activity Implement On My Location Changed Listener, מבצע אוקיי, ויש לנו כאן את הפונקציה הזאת, בואו נגדיר אותה ממש פה, שהמערכת הולכת לקרוא לה ברגע שיש שינוי במיקום ופשוט לתת לנו את המיקום.

  14. 05:17

    אז אנחנו כאן יכולים להשיג את ה-latitude על ידי Location.get.latitude ואנחנו יכולים להשיג את ה-longitude על ידי Location.get.longitude ואנחנו עכשיו יכולים ליצור את האובייקט שיצרנו מקודם latlng.location.

  15. 05:44

    הנה הוא פה, בואו ניצור אותו ממש בפונקציה הזאת. הדבר הבא שאנחנו רוצים, באמת אנחנו לא יכולים לקרוא לו Location אז בואו פשוט נקרא לו LAT LNG כי כבר יש לנו משתנה לוקיישן וכל מה שאנחנו רוצים זה פשוט להציג את זה במקום בפונקציה הזאת בואו נציג את זה כאן.

  16. 06:07

    עכשיו מה שקורה ושברגע שאנחנו נציג את המיקום אז יש הבדל בין תצוגה עם זומינג לתצוגה בלי זומינג. עכשיו אנחנו רוצים להציג עם זום רק פעם אחת בהתחלה אבל ברגע שיש לנו כבר את התצוגה איפה היוזר נמצא והיוזר זז אנחנו לא רוצים יותר להציג עם זומינג מפני שאם היוזר יזוז ואנחנו נציג לו את המיקום

  17. 06:40

    החדש שלו עם זומינג אז בעצם מה שיקרה זה שהתמונה תעלה כאילו לכדור הארץ ותרד למיקום החדש. כל פעם שהוא יזוז יתבצע זום-אאוט וזום-אין, זום-אאוט וזום-אין ואת זה אנחנו לא רוצים.

  18. 06:55

    אנחנו רוצים רק בפעם הראשונה זומינג ולהתמקד

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: Google Maps - Specific Locations

ההרצאה הבאה: הסבר על Material Design

הרצאות קשורות מקורסים אחרים

  • User Controls
  • USER MODULE
  • אובייקט Location (שורת URL)
  • Linux VM on Google Cloud

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון