בדרך כלל, כשהמשתמש נוסע לנקודת עניין (POI), הוא למעשה ידרוש ניווט למיקום קרוב, כמו חניון או נקודת גישה. דמיינו נהג שצריך להגיע לנמל תעופה או לקניון. כשנוסעים לנמל תעופה, הנהג מנסה להגיע לטרמינל או לנקודת הורדה ולא למרכז המתחם של נמל התעופה. בדומה לכך, חניון ליד מרכז הקניות עשוי להיות אפשרות טובה יותר למשתמש עם מכונית. במקרה כזה, כשמפתחים אפליקציה או שירות להדרכת הנהג, קודם צריך למצוא את המיקום שאליו הוא נוסע ואז להציע לנהג יעדים אופציונליים ליד המיקום הזה. הגישה הזו מאפשרת לכם לספק שירות טוב יותר ללקוחות ולהדגים שהזמן שלהם חשוב לכם, באמצעות מאמץ פיתוח קטן וחכם שממנף את נתוני המיקום שמסופקים על ידי הפלטפורמה של מפות Google.
נראה איך אפשר להשתמש ב-Places API וב-Directions API ביחד כדי לזהות את המיקום הנכון לחנות ליד היעד. הפתרון הזה נועד להסיר את אי-הוודאות ואת הצורך לבצע מספר אינטראקציות כדי למצוא מקום חנייה בזמן הנסיעה, ככל שמתקרבים ליעד הסופי. נבחן שתי דוגמאות מפורטות לאופן שבו אפשר להטמיע את התרחישים האלה.
דוגמה 1 – אטרקציה תיירותית ללא חניון
בואו נבחר מיקום שלא מחובר ישירות לצד הכביש, כך שצריך לאחזר מסלול בנפרד, היעד הוא נוטרדאם בפריז וכנקודת התחלה נשתמש בתחנת הרכבת Gare de l'Est (48.87697775149635, 2.3592247806755).
הנהג יוצא מהתחנה כ-16 דקות צפונה מנוטרדאם. קתדרלת נוטר דאם היא אטרקציה תיירותית מפורסמת שנמצאת באי עם גישה דרך גשר, כמה רחובות חד-סטריים ואין בה חניון גדול בקרבת מקום, כך שזו אמורה להיות משימה מעניינת.
בקשה ל-Places API
בבקשה לדוגמה הזו של Places API נעשה שימוש ב'חיפוש טקסט' כדי למצוא את קתדרלת נוטרדאם. פרטים נוספים זמינים במסמכי התיעוד למפתחים. הערך 'YOUR_KEY' בדוגמאות האלה הוא מפתח ה-API שיש לכם לממשקי ה-API של מפות Google למקומות ולמסלולי הגעה, שמופעלים במסוף Google Cloud. להסבר מפורט יותר, תוכלו לעיין בתיעוד בנושא תחילת העבודה עם הפלטפורמה של מפות Google.
https://maps.googleapis.com/maps/api/place/textsearch/json?query=notre_dame&location=48.864716%2C2.349014®ion=fr&key=YOUR_KEY
התגובה לבקשה שלמעלה כוללת את קואורדינטות קו האורך וקו הרוחב הבאות:
"results" : [ { "formatted_address" : "Notre Dame, Paris", "geometry" : { "location" : { "lat" : 48.8527288, }, ...
כמו שאתם רואים, הקואורדינטות אכן מצביעות על נוטרדאם.
|
|
כמפתחים או כספקי שירות, מומלץ להציג לנהגים באופן אוטומטי את ההודעה "מחפשים מקום חנייה ליד Notre Dame?". חוויית המשתמש תהיה שונה בהתאם למכשיר ולמסך, אבל כדאי לשקול להציג טקסט מודגש בחלון קופץ שייעלם לאחר זמן קצר. כדי למצוא חנייה ליד Notre Dame, מבצעים חיפוש טקסט ב-Places API עם הפרמטרים 'parking' ו-'300'. הדוגמה הזו תגרום להטיה של התוצאות לאזורי חניה במרחק של עד 300 מטרים מ-Notre Dame.
https://maps.googleapis.com/maps/api/place/textsearch/json?query=parking
&location=48.8527288%2C2.3505635®ion=fr&type=parking&radius=300&key=YOUR_KEY
התוצאה הראשונה היא "Parking Saemes Maubert-Lagrange" בכתובת 48.850591, 2.3486436. נשתמש במיקום הזה בקטע הבא שבו נשלח בקשה ל-Directions API.
בקשת Directions API
כדי למצוא את המסלול מהתחנה לאזור חניה קרוב לכנסיית נוטרדאם, צריך לשלוח בקשה ל-Directions API. פשוט מגדירים את הפרמטרים origin ו-destination. אפשר למצוא אפשרויות נוספות במסמכי התיעוד למפתחים.
https://maps.googleapis.com/maps/api/directions/json?origin=48.8767903,2.3592251&destination=48.850591%2C2.3486436&key=YOUR_KEY
בדרך כלל, התגובה מה-API של מסלול מכילה כמה הצעות למסלולים. כל מסלול מורכב מכמה 'קטעים', והקטעים האלה מכילים כמה 'שלבים' שבהם מוצגים המרחק והקואורדינטות של המסלול. כדי למצוא את הקואורדינטות הסופיות שאפשר להגיע אליהן ברכב, משתמשים בשדה end_location בשלב האחרון של הקטע האחרון במסלול שבחרתם.
ייתכן שהמיקום הזה אינו הבחירה הראשונה, אך אם תסתכלו במפה או ב-Google Street View, תראו שהמיקום נמצא במרחק הליכה קצר מאוד, כ-6-7 דקות מנוטרדאם.
מסלול הליכה מאזור החנייה לנוטרדאם
סיכום לדוגמה 1
כפי שאפשר לראות, כדי למצוא אזור חנייה לרכב, נדרשות רק מספר קריאות ל-API והצגת ההצעה לנהג. כך המשתמשים יכולים לחסוך זמן, כי הם לא נוסעים ברחובות חד-סטריים או מנסים למצוא מקום שבו הרכב יכול להישאר בתוך אטרקציה תיירותית צפופה. לסיכום, ביצענו את בקשות ה-API הבאות:
- בקשה ל-Places API כדי למצוא את הקואורדינטות של קתדרלת נוטרדאם
- בקשה של Places API למציאת אזור חניה בטווח של 300 מטר מהקואורדינטות האלה
- בקשה של Directions API לחיפוש מסלול לאזור החניה
דוגמה 2 – ניווט לטרמינל בשדה תעופה גדול
"types" : [ "airport", "point_of_interest", "establishment" ],
עם זאת, כל מי שביקר בשדה תעופה גדול יודע שנדרש זמן רב כדי לעבור בין טרמינלים אם מגיעים למיקום הלא נכון. במקרה הזה, מכיוון שהסוג של תוצאת החיפוש הוא 'שדה תעופה', כדאי להוסיף אוטומטית שאילתה נוספת לחיפוש 'טרמינל' באמצעות המיקום של שדה התעופה לונדון הית'רו (51.47016927594547, -0.45432767852489075). בדוגמה אפשר לראות גם את ההגבלה האופציונלית של רדיוס החיפוש, 3,000 מטרים.
https://maps.googleapis.com/maps/api/place/textsearch/json?query=terminal&location=51.47016927594547%2C-0.45432767852489075®ion=gb&key=YOUR_KEY&radius=3000
השאילתה שלמעלה מספקת לנו רשימה של מסופי הרכבת התחתית ונקודות האיסוף הנפרדות במסופים האלה. ברשימת התוצאות, אפשר למצוא את 'טרמינל 5 של לונדון הית'רו' ואת מזהה המקום:
"place_id" : "ChIJtQRd6XVxdkgRTUGZtcsoGNc",
בעזרת הפרמטר Place_id אנחנו יכולים להגדיר ל-Directions API שאנחנו מנסים להגיע למקום מסוים, ולא לקואורדינטות שרירותיות מסוימות.
https://maps.googleapis.com/maps/api/directions/json?origin=51.557263604707224,-0.2794575145680608&destination=place_id:ChIJtQRd6XVxdkgRTUGZtcsoGNc&key=YOUR_KEY
שוב, כמו בדוגמה הקודמת, אם תקראו את כל השלבים בתגובת ה-JSON, תמצאו את החלק האחרון בתהליך ואת מיקומי הסיום – lat & את הקואורדינטות הארוכות (51.47079979999999,-0.4896765).
סיכום לדוגמה 2
בדומה לדוגמה הקודמת, מאמצי הפיתוח כדי לספק הנחיות משופרות לנהג קטנים מאוד, והיתרונות של חיסכון הזמן לנהג ניתנים למדידה בקלות. ביצענו את הפעולות הבאות:
- בקשה ל-Places API כדי למצוא את נמל התעופה הית'רו
- בקשה ל-Places API כדי למצוא את כל הטרמינלים בסביבת הקואורדינטות של שדה התעופה הית'רו
- בקשה ל-Directions API לקבלת מסלול אל טרמינל 5
סיכום
כפי שאפשר לראות, מאמצי הפיתוח הנדרשים כדי לספק שירות פרימיום ללקוחות שנוסעים ברכב הם קטנים יחסית, ומאפשרים לכם להראות בקלות איך אתם מתייחסים לצרכים של הלקוחות.
למטרות פיתוח, ניתן להשתמש ברבים מהספריות והכלים הזמינים שיעזרו לכם לבנות את השירותים עבור הלקוחות שלכם. מומלץ לעיין במאגר GitHub של Google Maps Platform שזמין לכולם.
הפעולות הבאות
המחבר הראשי
מיקו טויבנן | מהנדסי פתרונות פלטפורמה של מפות Google