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

تتيح واجهة 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"
          }
        ] 
      }
    }
  ]
}

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

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

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

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

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

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