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

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

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

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

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

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

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 بر مسیرهای موجود در فیلد Preview (Pre-GA) directionsUri تأثیر می‌گذارد، زیرا Google Maps هنگام باز کردن لینک، گزینه‌های ترافیک را نمایش می‌دهد.

  • از ویژگی routingParameters.routeModifiers برای تعیین avoidTolls ، avoidHighways ، avoidFerries و avoidIndoor استفاده کنید. برای اطلاعات بیشتر در مورد این گزینه‌ها، به Specify route features to avoid مراجعه کنید.

در مثال بعدی، حالت سفر را 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ها به شما امکان می‌دهد درخواست‌های نمونه ایجاد کنید تا با API و گزینه‌های API آشنا شوید.

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

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

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

  4. در پنل APIs Explorer، آیکون تمام صفحه را در حالت تمام صفحه انتخاب کنید تا پنجره APIs Explorer باز شود.