Routes Preferred API की मदद से, पॉलीलाइन के साथ-साथ ट्रैफ़िक की स्थिति के बारे में जानकारी का अनुरोध किया जा सकता है. ट्रैफ़िक की स्थितियों को स्पीड कैटगरी (NORMAL, SLOW, TRAFFIC_JAM) के हिसाब से दिखाया जाता है. ये कैटगरी, जवाब के तौर पर मिली पॉलीलाइन के किसी दिए गए इंटरवल पर लागू होती हैं. इन इंटरवल को, पॉलीलाइन के शुरू होने (शामिल है) और खत्म होने (शामिल नहीं है) वाले पॉइंट के इंडेक्स से तय किया जाता है.
अनुरोध का उदाहरण
ट्रैफ़िक की जानकारी देने वाली पॉलीलाइन, रूट लेवल और लेग लेवल, दोनों के लिए उपलब्ध है.
रास्ते के लेवल पर, ट्रैफ़िक की रफ़्तार की जानकारी RouteTravelAdvisory रिस्पॉन्स फ़ील्ड में SpeedReadingIntervals के तौर पर दी जाती है.
रास्ते की पॉलीलाइन के साथ-साथ ट्रैफ़िक की जानकारी पाने के लिए, जवाब के फ़ील्ड मास्क में 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
, और स्पीड की कैटगरी के हिसाब से बताया जाता है.
ध्यान दें कि इंटरवल में स्टार्ट इंडेक्स न होने का मतलब है कि यह proto3 के तरीकों के मुताबिक इंडेक्स 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" } ] } } ] }
Maps SDK की मदद से, ट्रैफ़िक की जानकारी देने वाली पॉलीलाइन रेंडर करना
हमारा सुझाव है कि मैप पर ट्रैफ़िक की जानकारी देने वाली पॉलीलाइन दिखाने के लिए, Google Maps SDK की अलग-अलग सुविधाओं का इस्तेमाल करें. इनमें पॉलीलाइन के साथ-साथ कस्टम कलरिंग, स्ट्रोक, और पैटर्न शामिल हैं. पॉलीलाइन इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, 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