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

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

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

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

API Explorer به شما امکان می دهد درخواست های زنده بنویسید تا بتوانید با 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"
    },
   
  ]
}

از این مثال می بینید که مدت زمان و فاصله از مبدا مسیریابی تا رتبه اول در نتایج 597 ثانیه و 2607 متر است.

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

  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 را مشخص کنید. برای اطلاعات بیشتر در مورد این گزینه‌ها، به مشخص کردن ویژگی‌های مسیر برای اجتناب مراجعه کنید.

در مثال بعدی، حالت سفر را به عنوان 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'