पॉलीलाइन पर ट्रैफ़िक की जानकारी का अनुरोध करें

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