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

توفّر واجهة برمجة التطبيقات 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 وفقًا للممارسات المتعلّقة بالنماذج الأولية.

{
  "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.

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

يتمتع مستخدمو 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