طلب معلومات عن حركة المرور على الخط المتعدد

تتيح واجهة برمجة التطبيقات Routes Preferred API إمكانية طلب معلومات عن ظروف حركة المرور على طول الخط المتعدّد الأضلاع. يتم التعبير عن ظروف حركة المرور من حيث فئات السرعة (NORMAL وSLOW وTRAFFIC_JAM) السارِية على فاصل زمني معيّن من الخطوط المتعددة للردّ. يتم تحديد الفواصل الزمنية من خلال فهارس نقاط الخطوط المتعددة التي تمثل بداية (شاملة) ونهاية (حصرية) الفواصل الزمنية.

مثال على الطلب

يتوفّر الخط المتعدّد المراعي لحركة المرور على مستوى المسار ومستوى القسم. على مستوى المسار، يتم تقديم معلومات سرعة حركة المرور على شكل 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 وفئة السرعة المقابلة. يُرجى العِلم أنّ عدم توفّر فهرس البداية ضمن الفاصل الزمني يتوافق مع الفهرس 0 وفقًا لممارسات 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"
          }
        ] 
      }
    }
  ]
}

عرض خطوط متعددة تراعي حركة المرور باستخدام حزمة تطوير البرامج (SDK) لتطبيق "خرائط Google"

ننصحك بعرض الخطوط المتعددة المراعية للزحام على الخريطة باستخدام الميزات المختلفة التي تقدّمها حِزم تطوير البرامج (SDK) من "خرائط Google"، بما في ذلك الألوان المخصّصة والخطوط والنماذج على طول أقسام الخطوط المتعددة. لمزيد من التفاصيل حول استخدام الخطوط المتعددة، يُرجى الاطّلاع على ميزات الخطوط المتعددة لنظام التشغيل Android وميزات الخطوط المتعددة لنظام التشغيل iOS.

مثال على عرض Polyline

يمكن لمستخدمي حزمة SDK لتطبيق "خرائط Google" تحديد منطق تعيين مخصّص بين فئات السرعة ومخططات عرض الخطوط المتعددة. على سبيل المثال، قد يقرر المستخدم عرض السرعة "العادية" كخط أزرق سميك على الخريطة، بينما قد يتم عرض السرعة "البطيئة" كخط برتقالي سميك، وما إلى ذلك.

تضيف المقتطفات التالية خطًا متعدّد الأضلاع أزرقًا سميكًا مع أقسام هندسية من ملبورن إلى بيرث. لمزيد من المعلومات، اطّلِع على مقالتَي تخصيص المظاهر (لنظام التشغيل Android) وتخصيص الشكل المتعدّد الأضلاع (لنظام التشغيل iOS).

Android

Java

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

Objective-C

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