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

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

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

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

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

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

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

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, פונקציית Text Search (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'

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

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