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

אפשר לשלב בין חישובים של סיכום ניתוב לבין חיפוש לאורך מסלול. במקרה הזה, 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.