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

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

لاستخدام ميزة "البحث النصي (جديد)" من أجل حساب ملخّص التوجيه إلى جانب البحث على طول طريق، اتّبِع الخطوات التالية:

  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 لتوسيع نافذة "مستكشف واجهات برمجة التطبيقات".