الجمع بين ملخّصات التوجيه والبحث على طول المسار

يمكنك الجمع بين عمليات احتساب ملخّص التوجيه والبحث على طول مسار. في هذه الحالة، تعرض خدمة البحث النصي (الجديد) مدة السفر والمسافة إلى كل مكان في الاستجابة، ثم من كل مكان إلى الوجهة النهائية للمسار.

لاستخدام خدمة "البحث النصي (الجديد)" لاحتساب ملخّص التوجيه بالإضافة إلى البحث على طول مسار:

  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، تعرض خدمة "البحث النصي (الجديد)" وقت رحلة بجزأين:

  • يحتوي الجزء الأول على مدة السفر والمسافة من المصدر إلى المكان. في هذا المثال، تبلغ المدة والمسافة من المصدر إلى الـ مكان الأول في النتائج 285 ثانية و1616 مترًا.

  • يحتوي الجزء الثاني على مدة السفر والمسافة من المكان إلى وجهة المسار. في هذا المثال، تبلغ المدة والمسافة 2466 ثانية و58147 مترًا.

تحديد مصدر التوجيه ووضع السفر ومعدِّلات المسار

يمكنك تعديل عملية احتساب ملخّص البحث والتوجيه من خلال تحديد مصدر التوجيه ووضع السفر ومعدِّلات المسار وإعدادات التوجيه المفضّلة. يعمل وضع السفر ومعدِّلات المسار بالطريقة نفسها كما هو الحال عند احتساب ملخّصات التوجيه بدون تحديد مسار، كما هو موضّح في مقالة تحديد خيارات السفر.

تلقائيًا، يحتوي الجزء الأول من كل نتيجة على المسافة من المصدر الذي يحدّده الخط المتعدد إلى كل مكان. ومع ذلك، يمكنك إلغاء هذا الإعداد التلقائي من خلال تحديد مصدر توجيه بشكل صريح في الطلب. إذا تم تحديد ذلك، يحدّد الجزء الأول من جميع الاستجابات المسافات والمدة من مصدر التوجيه المحدّد، ما يؤدي إلى إلغاء المصدر من الخط المتعدد.

في المثال التالي، يمكنك تحديد مصدر التوجيه على أنّه إحداثيات سان ماتيو في كاليفورنيا، وتحديد تجنُّب الرسوم، وضبط عدد النتائج على 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'

تعرض الصورة التالية خريطة تحتوي على الخط المتعدد للمسار والمصدر الجديد (دبوس أزرق فاتح) والأماكن في نتائج البحث (دبابيس خضراء). لاحظ كيف أنّ جميع النتائج تقع على طول المسار، ولكن بعد سان ماتيو:

نتائج البحث من مصدر التحديث

جرِّبه الآن

يتيح لك مستكشف واجهات برمجة التطبيقات إرسال طلبات نموذجية لتتمكّن من التعرّف على واجهة برمجة التطبيقات وخياراتها.

  1. انقر على رمز واجهة برمجة التطبيقات api على الجانب الأيسر من الصفحة.

  2. يمكنك تعديل مَعلمات الطلب اختياريًا.

  3. انقر على الزر تنفيذ. في مربع الحوار، اختَر الحساب الذي تريد استخدامه لإرسال الطلب.

  4. في لوحة "مستكشف واجهات برمجة التطبيقات"، انقر على رمز ملء الشاشة fullscreen لتوسيع نافذة "مستكشف واجهات برمجة التطبيقات".