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, और उससे जुड़ी स्पीड कैटगरी के हिसाब से बताया जाता है.
ध्यान दें कि इंटरवल में स्टार्ट इंडेक्स न होने का मतलब है कि इंडेक्स 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" } ] } } ] }
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