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

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