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

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

  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 برای مکانی دردسترس نباشد، ورودی آرایه خالی است.

Because this example calculates the duration and distance from the routing origin to each place, the routingSummaries.legs field in the response contains a single Leg object that contains the duration and distanceMeters from the routing origin to the place.

{
  "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 بر مسیرهای موجود در فیلد «پیش‌نمایش» (پیش‌از دردسترس عموم) 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'

امتحان کنید!

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

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

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

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

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