تتيح 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
انتقِل إلى "Choose Fields to Return" للحصول على تفاصيل إضافية حول تحديد قناع حقل الاستجابة.
مثال على ردّ
ما دام يتم طلب 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.
مثال على عرض خطوط متعدّدة
أتيحت لمستخدمي حزمة تطوير البرامج (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