डेटा-ड्रिवन स्टाइल का इस्तेमाल करके, रीयल टाइम में अपना डेटा देखें

इस दस्तावेज़ में बताया गया है कि Maps JavaScript API का इस्तेमाल करके, Google सीमाओं की डाइनैमिक डेटा-ड्रिवन स्टाइलिंग को क्यों और कैसे लागू किया जाए. यह कई तरह के इस्तेमाल के उदाहरणों के लिए, अलग-अलग इंडस्ट्री और सेगमेंट में काम आता है.

पोस्टल कोड के हिसाब से, न्यूयॉर्क सिटी में टैक्सी की संख्या
न्यूयॉर्क सिटी में पोस्टल कोड की सीमा के हिसाब से, ऐनिमेशन वाली टैक्सी की संख्या (सिमुलेट की गई, टाइम-लैप्स):
न्यूयॉर्क शहर में पोस्टल कोड के हिसाब से टैक्सी की संख्या (टाइम-लैप्स) मैप लीजेंड

डेटा-ड्रिवन स्टाइल, Google Maps Platform की एक सुविधा है. इसकी मदद से, Google की प्रशासनिक सीमा के पॉलीगॉन का इस्तेमाल किया जा सकता है. साथ ही, अपने मैप पर दिखाने के लिए उन पॉलीगॉन पर स्टाइल लागू की जा सकती है. इसके अलावा, अपने डेटा को जोड़कर बेहतर और पसंद के मुताबिक मैप बनाए जा सकते हैं. इन मैप का इस्तेमाल, विज़ुअल विश्लेषण और अपने डेटा को बेहतर तरीके से समझने के लिए किया जा सकता है. इस दस्तावेज़ में, इस्तेमाल के कुछ उदाहरणों के बारे में बताया गया है. इनसे यह पता चलता है कि डाइनैमिक डेटा फ़ीड को इंटिग्रेट करके, मैप पर डेटा-ड्रिवन स्टाइल की मदद से, रीयल-टाइम में डेटा को विज़ुअलाइज़ करने का तरीका क्या है और क्यों ऐसा किया जा सकता है.

डेटा-ड्रिवन स्टाइल की मदद से, ऐसे मैप बनाए जा सकते हैं जिनमें डेटा का भौगोलिक वितरण दिखता है. साथ ही, पॉलीगॉन स्टाइल को डाइनैमिक तौर पर पसंद के मुताबिक बनाया जा सकता है और क्लिक इवेंट की मदद से अपने डेटा के साथ इंटरैक्ट किया जा सकता है. इन सुविधाओं का इस्तेमाल, कई तरह के इस्तेमाल के उदाहरणों और इंडस्ट्री के लिए, जानकारी देने वाले और दिलचस्प मैप बनाने के लिए किया जा सकता है.

यहां इस्तेमाल के कुछ उदाहरण दिए गए हैं. ये ऐसे उदाहरण हैं जो डेटा-ड्रिवन स्टाइलिंग पर डाइनैमिक डेटा अपडेट दिखाने वाले मैप पर लागू हो सकते हैं:

  • राइड शेयरिंग: रीयल-टाइम अपडेट का इस्तेमाल, उन इलाकों की पहचान करने के लिए किया जा सकता है जहां मांग ज़्यादा है. ऐसे में, कुछ सेवा देने वाली कंपनियां किराये में बढ़ोतरी कर सकती हैं.
  • यातायात: रीयल-टाइम अपडेट का इस्तेमाल, ट्रैफ़िक वाले इलाकों की पहचान करने के लिए किया जा सकता है. इससे, यात्रा के लिए सबसे अच्छे वैकल्पिक रास्ते तय करने में मदद मिलेगी.
  • चुनाव: चुनाव की रात, रीयल-टाइम डेटा पोलिंग डेटा का इस्तेमाल करके, नतीजों को उनके होने के साथ-साथ विज़ुअलाइज़ किया जा सकता है.
  • कर्मचारियों की सुरक्षा: रीयल-टाइम अपडेट का इस्तेमाल, इवेंट को रीयल-टाइम में ट्रैक करने, ज़्यादा जोखिम वाले इलाकों की पहचान करने, और फ़ील्ड में काम करने वाले लोगों को स्थिति की जानकारी देने के लिए किया जा सकता है.
  • मौसम: रीयल-टाइम अपडेट का इस्तेमाल, तूफ़ानों की गतिविधियों को ट्रैक करने, मौजूदा खतरों की पहचान करने, और चेतावनियां और सूचनाएं देने के लिए किया जा सकता है.
  • पर्यावरण: रीयल-टाइम अपडेट का इस्तेमाल, ज्वालामुखी की राख और प्रदूषण फैलाने वाले अन्य कॉम्पोनेंट की गतिविधियों को ट्रैक करने, पर्यावरण को नुकसान पहुंचाने वाले इलाकों की पहचान करने, और मानव गतिविधि के असर पर नज़र रखने के लिए किया जा सकता है.

इन सभी स्थितियों में, ग्राहक अपने रीयल-टाइम डेटा फ़ीड को Google की सीमाओं के साथ जोड़कर, ज़्यादा फ़ायदा पा सकते हैं. इससे, वे मैप पर अपने डेटा को तुरंत और आसानी से विज़ुअलाइज़ कर सकते हैं. साथ ही, उन्हें फटाफट अहम जानकारी मिलती है, ताकि वे बेहतर फ़ैसले ले सकें.

समाधान के लिए आर्किटेक्चरल अप्रोच

अब डाइनैमिक डेटा को विज़ुअलाइज़ करने के लिए, डेटा-ड्रिवन स्टाइल का इस्तेमाल करके मैप बनाने का तरीका जानें. जैसा कि पहले बताया गया है, इस्तेमाल के उदाहरण में न्यूयॉर्क शहर में टैक्सियों की संख्या को पिन कोड के हिसाब से दिखाया गया है. इससे उपयोगकर्ताओं को यह समझने में मदद मिलती है कि टैक्सी किराये पर लेना कितना आसान होगा.

आर्किटेक्चर
यहां इस तरीके के ऐप्लिकेशन आर्किटेक्चर का डायग्राम दिया गया है:
ऐप्लिकेशन का आर्किटेक्चर

डाइनैमिक डेटा-ड्रिवन स्टाइलिंग का समाधान

अब अपने डेटासेट के लिए, डेटा-ड्रिवन स्टाइल वाला डाइनैमिक चोरोपलेथ मैप लागू करने के लिए ज़रूरी चरणों के बारे में जानें.

इस समाधान की मदद से, न्यूयॉर्क शहर के आस-पास डाक कोड के हिसाब से, रीयल-टाइम में टैक्सी की संख्या का अनुमानित डेटासेट देखा जा सकता है. यह असल डेटा नहीं है, लेकिन इसका इस्तेमाल असल दुनिया में किया जा सकता है. साथ ही, इससे आपको यह समझने में मदद मिलती है कि डेटा-ड्रिवन स्टाइल की मदद से, मैप पर डाइनैमिक डेटा को कैसे विज़ुअलाइज़ किया जा सकता है.

पहला चरण: विज़ुअलाइज़ करने के लिए डेटा चुनना और उसे सीमा वाले प्लेस आईडी से जॉइन करना

सबसे पहले, आपको उस डेटा की पहचान करनी होगी जिसे आपको दिखाना है. साथ ही, यह पक्का करना होगा कि उसे Google की सीमाओं के हिसाब से दिखाया जा सके. हर पिन कोड के लिए findPlaceFromQuery कॉलबैक तरीके को कॉल करके, क्लाइंट-साइड पर मैचिंग की जा सकती है. ध्यान दें कि अमेरिका में पिन कोड के अलग-अलग नाम होते हैं, लेकिन अन्य प्रशासनिक लेवल के नाम अलग नहीं होते. आपको यह पक्का करना होगा कि आपने अपनी क्वेरी के लिए सही प्लेस आईडी चुना हो. ऐसा तब करना होगा, जब आपको अस्पष्ट नतीजे मिल सकते हों.


const request = {
    query: postalCode,
    fields: ['place_id'],
};
 
function findPlaceId() {
   placesService.findPlaceFromQuery(request, function (results, status) {
      if (status === google.maps.places.PlacesServiceStatus.OK) {
         console.log(results[0]);
      }
   });
}

अगर आपके डेटा में अक्षांश और देशांतर की वैल्यू हैं, तो कॉम्पोनेंट फ़िल्टर करने की सुविधा के साथ Geocoding API का इस्तेमाल करके, उन अक्षांश/देशांतर वैल्यू को उस फ़ीचर लेयर के प्लेस आईडी वैल्यू में बदला जा सकता है जिसकी स्टाइलिंग आपको करनी है. इस उदाहरण में, आपको POSTAL_CODE फ़ीचर लेयर को स्टाइल करना होगा.

दूसरा चरण: रीयल-टाइम डेटा से कनेक्ट करना

डेटा सोर्स से कनेक्ट करने के कई तरीके हैं. सबसे सही तरीका आपकी ज़रूरतों और तकनीकी इन्फ़्रास्ट्रक्चर पर निर्भर करेगा. इस मामले में, मान लें कि आपका डेटा दो कॉलम वाली BigQuery टेबल में मौजूद है: “zip_code” और “taxi_count”. साथ ही, आपको Firebase Cloud Function के ज़रिए इसकी क्वेरी करनी है.

async function queryNycTaxis() {
   // Queries the NYC Taxis dataset.

   // Create a client
   const bigqueryClient = new BigQuery();
  
   // The SQL query to run
   const sqlQuery = 'SELECT zip_code, taxi_count
      FROM \'YOUR_DATASET_ID.TABLE\' LIMIT 100';
      
   const options = {
      query: sqlQuery,
      // Location must match that of the dataset(s)
      // referenced in the query.
      location: 'US',
   };
  
   // Run the query
   const [rows] = await bigqueryClient.query(options);
  
   rows.forEach(row => {
      const postalCode = row['zip_code'];
      const taxiCount = row['taxi_count'];
   });
}

इसके बाद, आपको यह पक्का करना होगा कि डेटा अप-टू-डेट हो. ऐसा करने का एक तरीका यह है कि वेब वर्कर्स का इस्तेमाल करके, ऊपर दी गई क्वेरी को कॉल करें. इसके बाद, setInterval फ़ंक्शन का इस्तेमाल करके, अपने डेटा को रीफ़्रेश करने के लिए टाइमर सेट करें. इंटरवल को अपनी पसंद के हिसाब से सेट किया जा सकता है. जैसे, हर 15 सेकंड में मैप रीफ़्रेश करना. इंटरवल टाइम खत्म होने पर, वेब वर्कर्स हर पिन कोड के हिसाब से, अपडेट की गई taxiCount वैल्यू का अनुरोध करेगा.

अब हम डेटा को क्वेरी कर सकते हैं और रीफ़्रेश कर सकते हैं. आइए, यह पक्का करें कि मैप पॉलीगॉन के दिखने का तरीका इन बदलावों को दिखाता हो.

तीसरा चरण: डेटा-ड्रिवन स्टाइलिंग की मदद से, अपने मैप को स्टाइल करना

अब आपके पास Maps JavaScript इंस्टेंस में, JSON ऑब्जेक्ट के तौर पर डाक कोड की सीमाओं के लिए विज़ुअल स्टाइल बनाने और उसे लागू करने के लिए ज़रूरी डाइनैमिक डेटा वैल्यू हैं. अब इसे चोरोपलेथ मैप के तौर पर स्टाइल देने का समय आ गया है.

इस उदाहरण में, हर पिन कोड में टैक्सी की संख्या के आधार पर मैप को स्टाइल किया जाएगा. इससे, उपयोगकर्ताओं को अपने इलाके में टैक्सी की संख्या और उपलब्धता के बारे में पता चलेगा. टैक्सी की संख्या की वैल्यू के हिसाब से, स्टाइल अलग-अलग होगा. जिन इलाकों में सबसे कम टैक्सी हैं उन पर बैंगनी रंग की स्टाइल लागू होगी. साथ ही, सबसे ज़्यादा टैक्सी वाले इलाकों के लिए, कलर ग्रेडिएंट लाल, नारंगी, और न्यूयॉर्क सिटी टैक्सी के पीले रंग पर खत्म होगा. इस कलर स्कीम के लिए, आपको इन रंग की वैल्यू को fillColor और strokeColor पर लागू करना होगा. fillOpacity को 0.5 पर सेट करने से, आपके उपयोगकर्ताओं को नीचे मौजूद मैप दिखता है. साथ ही, strokeOpacity को 1.0 पर सेट करने से, वे एक ही रंग के पॉलीगॉन की सीमाओं में अंतर कर पाते हैं:


const featureLayer = map.getFeatureLayer(
   google.maps.FeatureType.POSTAL_CODE
);
featureLayer.style = (featureStyleFunctionOptions) => {
   const placeFeature = featureStyleFunctionOptions.feature;
   // taxiCount per (postal_code) PlaceID 
   const taxiCount = zips[placeFeature.placeId];
   let fillColor;
   let strokeColor;
// Apply colors to features based on taxiCount values
if (taxiCount < 8) {
   fillColor = "#571845";  
   strokeColor = "#571845"; 
} else if (taxiCount < 13) {
   fillColor = "#900c3e";
   strokeColor = "#900c3e";
} else if (taxiCount < 21) {
   fillColor = "#c60039"; 
   strokeColor = "#c60039"; 
} else if (taxiCount < 34) {
   fillColor = "#fe5733";
   strokeColor = "#fe5733";
// keep else if or the whole map gets this style with else
} else if (taxiCount >= 34) { 
   fillColor = "#fec30f";
   strokeColor = "#fec30f";
}  
return {
   fillColor,
   strokeColor,
   fillOpacity: 0.5,
   strokeOpacity: 1.0,
};
 

नतीजा

Google की सीमाओं के लिए डेटा-ड्रिवन स्टाइल की सुविधा, आपके डेटा का इस्तेमाल करके मैप को स्टाइल करने की सुविधा देती है. इससे, अलग-अलग इंडस्ट्री और सेगमेंट में कई तरह के लागू करने के लिए, मैप को स्टाइल किया जा सकता है. रीयल-टाइम डेटा से कनेक्ट करने पर, आपको यह बताने में मदद मिलती है कि क्या हो रहा है, कहां हो रहा है, और कब हो रहा है. इस सुविधा की मदद से, रीयल-टाइम डेटा की वैल्यू को बेहतर बनाया जा सकता है. साथ ही, उपयोगकर्ताओं को रीयल-टाइम में, असल दुनिया में इस डेटा को बेहतर तरीके से समझने में मदद मिलती है.

अगली कार्रवाइयां

योगदानकर्ता

मुख्य लेखक:

जिम लेफ़लर | Google Maps Platform के सलूशन इंजीनियर