שילוב של סיכומי ניווט עם חיפוש לאורך המסלול

אפשר לשלב בין חישובים של סיכום ניתוב לבין חיפוש לאורך מסלול. במקרה הזה, Text Search (New) מחזירה את משך הנסיעה ואת המרחק לכל מקום בתשובה, ואז מכל מקום ליעד הסופי של המסלול.

כדי להשתמש בחיפוש טקסט (חדש) כדי לחשב את סיכום הניתוב יחד עם חיפוש לאורך מסלול:

  1. משתמשים ב-Routes API כדי לחשב מסלול שמחזיר קו פוליגוני של המסלול בתגובה.

  2. משתמשים בפרמטר searchAlongRouteParameters.polyline.encodedPolyline כדי להעביר את קו המתאר של המסלול לחיפוש טקסט (חדש) כדי להטות את תוצאות החיפוש לכיוון המסלול. התשובה מכילה מקומות שתואמים לקריטריונים לחיפוש ונמצאים גם בקרבת המסלול שצוין.

  3. כוללים את routingSummaries במסכת השדות כדי שהתשובה תכלול את המערך routingSummaries. המערך הזה מכיל את משך הנסיעה והמרחק מנקודת המוצא של הניתוב לכל מקום בתגובה.

‫APIs Explorer מאפשר לכם לשלוח בקשות בזמן אמת כדי להכיר את ה-API ואת האפשרויות שלו:

כברירת מחדל, חיפוש טקסט (חדש) מבצע את החיפוש לאורך כל המסלול:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

התשובה מכילה שני מערכים: המערך places שמכיל את המקומות התואמים, והמערך routingSummaries שמכיל את משך הנסיעה ואת המרחק לכל מקום:

{
  "places": [
    {
      "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Vegan Mob - Vegan BBQ and Soul Food",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Enjoy Vegetarian",
        "languageCode": "en"
      }
    },
   …
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0"
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0"
    },
   …
  ]
}

לכל רשומה במערך legs, הפונקציה חיפוש טקסט (New) מחזירה את משך הנסיעה בשני קטעי דרך:

  • המקטע הראשון מכיל את משך הנסיעה והמרחק מנקודת המוצא למקום. בדוגמה הזו, משך הזמן והמרחק מהמיקום הנוכחי למקום הראשון בתוצאות הם 285 שניות ו-1,616 מטרים.

  • הקטע השני מכיל את משך הנסיעה והמרחק מהמקום אל יעד המסלול. בדוגמה הזו, משך הזמן והמרחק הם: 2,466 שניות ו-58,147 מטרים.

ציון מקור הניתוב, אמצעי התחבורה ושינויים במסלול

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

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

בדוגמה הבאה, מציינים את נקודת המוצא של המסלול כקואורדינטות של סן מטאו, קליפורניה, מציינים שרוצים להימנע מכבישי אגרה ומגדירים את מספר התוצאות ל-5:

  curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food",
    "maxResultCount": 5,
    "searchAlongRouteParameters": {
      "polyline": {
        "encodedPolyline": "ROUTE_POLYLINE"
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": 37.56617,
        "longitude": -122.30870
      },
      "travelMode":"DRIVE",
      "routeModifiers": {
        "avoidTolls": true
      }
    }
  }' \
  -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
  -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
  'https://places.googleapis.com/v1/places:searchText'

בתמונה הבאה מוצגת מפה שמכילה את הקו הפוליגוני של המסלול, את נקודת המוצא החדשה (סיכה בצבע כחול בהיר) ואת המקומות בתוצאות החיפוש (סיכות בצבע ירוק). שימו לב שכל התוצאות הן לאורך המסלול, אבל אחרי סן מטאו:

תוצאות חיפוש ממקור העדכון.

רוצה לנסות?

‫APIs Explorer מאפשר לכם לשלוח בקשות לדוגמה כדי להכיר את ה-API ואת האפשרויות שלו.

  1. בצד שמאל של הדף, לוחצים על סמל ה-API‏ api.

  2. אפשר לערוך את פרמטרים הבקשה.

  3. לוחצים על הכפתור Execute (הפעלה). בתיבת הדו-שיח, בוחרים את החשבון שבו רוצים להשתמש כדי לשלוח את הבקשה.

  4. בחלונית APIs Explorer, לוחצים על סמל המסך המלא מסך מלא כדי להרחיב את החלון של APIs Explorer.