محاسبه خلاصه مسیریابی

برای استفاده از جستجوی نوشتاری (جدید) یا جستجوی اطراف (جدید) برای محاسبه مدت سفر و فاصله تا هر مکان در پاسخ:

  1. پارامتر routingParameters.origin را در درخواست ارسال کنید تا مختصات طول و عرض جغرافیایی مبدأ مسیریابی را مشخص کنید. این پارامتر برای محاسبه مدت و فاصله تا هر مکان در پاسخ الزامی است.

  2. ‫routingSummaries را در پوشش فیلد بگنجانید تا پاسخ شامل آرایه routingSummaries شود. این آرایه شامل مدت و فاصله از مبدأ مسیریابی تا هر مکان در پاسخ است.

‫APIs Explorer به شما امکان می‌دهد درخواست‌های زنده ارسال کنید تا بتوانید با میانای برنامه‌سازی کاربردی و گزینه‌های میانای برنامه‌سازی کاربردی آشنا شوید:

در درخواست زیر، مدت و فاصله سفر به هر مکان را در پاسخ «جستجوی نوشتاری (جدید)» محاسبه می‌کنید:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-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'

پاسخ حاوی دو آرایه JSON است: آرایه places حاوی مکان‌های منطبق است، و آرایه routingSummaries حاوی مدت و فاصله سفر به هر مکان است:

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

هر عنصر در آرایه routingSummaries در مکان آرایه مربوطه به‌عنوان مکان در آرایه places قرار دارد. یعنی عنصر در routingSummaries[0] با مکان در places[0] مطابقت دارد.

طول آرایه routingSummaries با طول آرایه places یکسان است. در مواردی که routingSummary برای مکانی دردسترس نباشد، ورودی آرایه خالی است.

چون این مثال مدت و فاصله را از مبدأ مسیریابی به هر مکان محاسبه می‌کند، فیلد routingSummaries.legs در پاسخ حاوی یک شیء Leg است که شامل duration و distanceMeters از مبدأ مسیریابی به مکان است.

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    …
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   …
  ]
}

از این مثال می‌توانید ببینید که مدت و فاصله از مبدأ مسیریابی تا اولین مکان در نتایج ۵۹۷ ثانیه و ۲۶۰۷ متر است.

در این مثال، مدت زمان سفر و فاصله تا هر مکان را در پاسخ «جستجوی مکان‌های اطراف» محاسبه می‌کنید. این مثال رستوران‌های سیدنی، استرالیا را جستجو می‌کند و محدودیت مکان و مبدأ مسیریابی را روی مختصات طول و عرض جغرافیایی یکسان تنظیم می‌کند:

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

لازم نیست از مختصات یکسانی برای locationRestriction و برای مبدأ مسیریابی استفاده کنید. برای مثال، locationRestriction را روی نقطه مرکزی سیدنی تنظیم می‌کنید تا نتایج جستجو را به آن دایره متمایل کنید. اما سپس مبدأ مسیریابی را روی مختصات خانه‌تان تنظیم می‌کنید، یعنی روی مکان دیگری در دایره جستجو. سپس درخواست نتایج جستجو را به دایره متمایل می‌کند و خلاصه مسیرها را براساس مکان خانه‌تان محاسبه می‌کند.

گزینه‌های سفر را مشخص کنید

به‌طور پیش‌فرض، محاسبات مدت و فاصله برای خودرو است. بااین‌حال، می‌توانید نوع وسیله نقلیه و همچنین گزینه‌های دیگر را در جستجو کنترل کنید.

  • از پارامتر routingParameters.travelMode برای تنظیم حالت حمل‌ونقل به DRIVE،‏ BICYCLE،‏ WALK، یا TWO_WHEELER استفاده کنید. برای اطلاعات بیشتر درباره این گزینه‌ها، انواع خودروهای دردسترس برای مسیرها را ببینید.

  • از دارایی routingParameters.routingPreference برای تنظیم گزینه اولویت مسیریابی روی TRAFFIC_UNAWARE (پیش‌فرض)، TRAFFIC_AWARE، یا TRAFFIC_AWARE_OPTIMAL استفاده کنید. هر گزینه سطوح مختلفی از کیفیت داده و تأخیر دارد. برای اطلاعات بیشتر، مشخص کنید داده‌های ترافیک چگونه و آیا باید اضافه شود.

    دارایی routingParameters.routingPreference بر مسیرهای موجود در فیلد «پیش‌نمایش» (پیش‌از GA) directionsUri تأثیر می‌گذارد زیرا وقتی Google Maps پیوند را باز می‌کند، گزینه‌های ترافیک را نمایش می‌دهد.

  • از دارایی routingParameters.routeModifiers برای مشخص کردن avoidTolls،‏ avoidHighways،‏ avoidFerries، و avoidIndoor استفاده کنید. برای اطلاعات بیشتر درباره این گزینه‌ها، مشخص کردن ویژگی‌های مسیر برای اجتناب را ببینید.

در مثال بعدی، حالت سفر را DRIVE مشخص می‌کنید و از بزرگراه‌ها اجتناب می‌کنید:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": 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'

امتحان کنید!

با API Explorer می‌توانید درخواست‌های نمونه ایجاد کنید تا با API و گزینه‌های API آشنا شوید.

  1. نماد API api را در سمت چپ صفحه انتخاب کنید.

  2. درصورت تمایل، پارامترهای درخواست را ویرایش کنید.

  3. دکمه اجرا را انتخاب کنید. در کادر گفتگو، حسابی را که می‌خواهید برای درخواست استفاده کنید انتخاب کنید.

  4. در پانل «کاوشگر میاناهای برنامه‌سازی کاربردی»، نماد تمام‌صفحه تمام‌صفحه را برای ازهم بازکردن پنجره «کاوشگر میاناهای برنامه‌سازی کاربردی» انتخاب کنید.