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