تتيح واجهة 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"
ننصح بعرض الخطوط المتعددة التي تعكس معلومات حركة المرور على الخريطة باستخدام الميزات المختلفة التي توفّرها حِزم تطوير البرامج بالاستناد إلى بيانات "خرائط Google"، بما في ذلك التلوين المخصّص والخطوط والأنماط على طول أجزاء الخط المتعدد. لمزيد من التفاصيل حول استخدام الخطوط المتعددة، يُرجى الاطّلاع على ميزات الخطوط المتعددة لتطبيقات Android وميزات الخطوط المتعددة لتطبيقات iOS.
مثال على عرض الخط المتعدد
يمكن لمستخدمي حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" تحديد منطق ربط مخصّص بين فئات السرعة ومخططات عرض الخط المتعدد. على سبيل المثال، قد يقرّر المستخدم عرض السرعة "NORMAL" على شكل خط أزرق سميك على الخريطة، بينما قد يتم عرض السرعة "SLOW" على شكل خط برتقالي سميك، وهكذا.
تضيف المقتطفات التالية خطًا متعددًا أزرق سميكًا يتضمّن أجزاءً جيوديسية من ملبورن إلى بيرث. لمزيد من المعلومات، يُرجى الاطّلاع على مقالتَي تخصيص المظاهر (لتطبيقات 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