درخواست اطلاعات ترافیک در چندخطی

Routes Preferred API امکان درخواست اطلاعات درباره وضعیت ترافیک درطول چندخطی را فراهم می‌کند. شرایط ترافیک براساس دسته‌های سرعت (عادی، آهسته، ترافیک سنگین) بیان می‌شود که در بازه زمانی مشخصی از چندخطی پاسخ اعمال می‌شود. فاصله‌ها با نمایه‌های نقاط چندخطی شروع (شامل) و پایان (غیرشامل) تعریف می‌شوند.

درخواست نمونه

چندخطی آگاه از ترافیک هم برای سطح مسیر و هم برای سطح بخش دردسترس است. در سطح مسیر، اطلاعات سرعت ترافیک به‌صورت SpeedReadingIntervals در فیلد پاسخ RouteTravelAdvisory ارائه می‌شود. برای دریافت اطلاعات ترافیک درکنار چندخطی مسیر، هم polyline و هم speedReadingIntervals را در ماسک فیلد پاسخ اضافه کنید.

اگر ماسک فیلد حاوی routes.legs.travelAdvisory.speedReadingIntervals باشد، پاسخ حاوی داده‌های ترافیک سطح بخش در RouteLegTravelAdvisory خواهد بود.

X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline,routes.travelAdvisory.speedReadingIntervals,routes.legs.polyline.encodedPolyline,routes.legs.travelAdvisory.speedReadingIntervals

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

پاسخ نمونه

تا زمانی که speedReadingIntervals ازطریق پوشش فیلد درخواست شود، در routes.travelAdvisory.speedReadingIntervals پر می‌شود. ترافیک سطح پا در routes.legs.travelAdvisory.speedReadingIntervals دردسترس است. هر بازه با startPolylinePointIndex، endPolylinePointIndex، و دسته سرعت مربوطه توصیف می‌شود. توجه داشته باشید که نبود نمایه شروع در بازه مطابق با شیوه‌های proto3 با نمایه ۰ مطابقت دارد.

{
  "routes": [
    {
      "legs": {
        "polyline": {
          "encodedPolyline": "}boeF~zbjVAg@EmB`GWHlD"
        },
        "travelAdvisory": {
          "speedReadingIntervals": [
            {
              "endPolylinePointIndex": 1,
              "speed": "NORMAL"
            },
            {
              "startPolylinePointIndex": 1,
              "endPolylinePointIndex": 2,
              "speed": "SLOW"
            },
            {
              "startPolylinePointIndex": 2,
              "endPolylinePointIndex": 4,
              "speed": "NORMAL"
            }
          ] 
        }
      },
      "polyline": {
        "encodedPolyline": "}boeF~zbjVAg@EmB`GWHlD"
      },
      "travelAdvisory": {
        "speedReadingIntervals": [
          {
            "endPolylinePointIndex": 1,
            "speed": "NORMAL"
          },
          {
            "startPolylinePointIndex": 1,
            "endPolylinePointIndex": 2,
            "speed": "SLOW"
          },
          {
            "startPolylinePointIndex": 2,
            "endPolylinePointIndex": 4,
            "speed": "NORMAL"
          }
        ] 
      }
    }
  ]
}

پرداخت چندخطی‌های آگاه از ترافیک با Maps SDK

توصیه می‌کنیم چندخطی‌های آگاه از ترافیک را بااستفاده از ویژگی‌های مختلف ارائه‌شده توسط کیت‌های توسعه نرم‌افزار Google Maps، ازجمله رنگ‌آمیزی سفارشی، خطوط، و الگوها درطول چندخطی، روی نقشه نمایش دهید. برای جزئیات بیشتر درباره استفاده از چندخطی‌ها، ویژگی‌های چندخطی برای Android و ویژگی‌های چندخطی برای iOS را ببینید.

نمونه پردازش چندخطی

کاربران Maps SDK این فرصت را دارند که منطق نگاشت سفارشی‌شده‌ای را بین دسته‌های سرعت و طرح‌واره‌های رندر چندخطی تعریف کنند. به‌عنوان مثال، ممکن است تصمیم گرفته شود که سرعت «عادی» به‌صورت خط آبی ضخیم روی نقشه نمایش داده شود، درحالی‌که سرعت «آهسته» ممکن است به‌صورت خط نارنجی ضخیم نمایش داده شود، و غیره.

قطعه کدهای زیر یک چندخطی آبی ضخیم با بخش‌های ژئودزیک از ملبورن به پرت اضافه می‌کنند. برای اطلاعات بیشتر، سفارشی‌سازی ظاهر (برای Android) و سفارشی‌سازی چندخطی (برای iOS) را ببینید.

Android

جاوا

Polyline line = map.addPolyline(new PolylineOptions()
    .add(new LatLng(-37.81319, 144.96298), new LatLng(-31.95285, 115.85734))
    .width(25)
    .color(Color.BLUE)
    .geodesic(true));

Kotlin

val line: Polyline = map.addPolyline(
  PolylineOptions()
    .add(LatLng(-37.81319, 144.96298), LatLng(-31.95285, 115.85734))
    .width(25f)
    .color(Color.BLUE)
    .geodesic(true)
)

iOS

آبجکتیو-سی

GMSMutablePath *path = [GMSMutablePath path];
[path addLatitude:-37.81319 longitude:144.96298];
[path addLatitude:-31.95285 longitude:115.85734];
GMSPolyline *polyline = [GMSPolyline polylineWithPath:path];
polyline.strokeWidth = 10.f;
polyline.strokeColor = .blue;
polyline.geodesic = YES;
polyline.map = mapView;

Swift

let path = GMSMutablePath()
path.addLatitude(-37.81319, longitude: 144.96298)
path.addLatitude(-31.95285, longitude: 115.85734)
let polyline = GMSPolyline(path: path)
polyline.strokeWidth = 10.0
polyline.geodesic = true
polyline.map = mapView