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

تتيح واجهة برمجة التطبيقات Routes Preferred إمكانية طلب معلومات حول أحوال حركة المرور على طول الخط المتعدد الأضلاع. يتم التعبير عن حالات المرور من خلال فئات السرعة (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

يمكنك الانتقال إلى "اختيار الحقول المطلوب عرضها" للحصول على تفاصيل إضافية حول تحديد fieldmask الخاص بالرد.

مثال على الرد

طالما تم طلب 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"
          }
        ] 
      }
    }
  ]
}

عرض خطوط متعدّدة الأضلاع تراعي حركة المرور باستخدام "حزمة تطوير البرامج بالاستناد إلى بيانات خرائط Google"

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

مثال على عرض خطوط متعددة

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

تضيف المقتطفات التالية خطًا متعدد الأضلاع أزرق سميكًا مع مقاطع جيوديسية من ملبورن إلى بيرث. لمزيد من المعلومات، يُرجى الاطّلاع على تخصيص المظاهر (لنظام التشغيل 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