डेटासेट बनाने की प्रोसेस दो चरणों में होती है:
डेटासेट बनाने के लिए अनुरोध करें.
डेटासेट में डेटा अपलोड करने के लिए अनुरोध करें.
शुरुआती डेटा अपलोड के बाद, डेटासेट का नया वर्शन बनाने के लिए, डेटासेट में नया डेटा अपलोड किया जा सकता है.
ज़रूरी शर्तें
डेटासेट बनाते समय:
- आपके Google Cloud प्रोजेक्ट के डिसप्ले नेम यूनीक होने चाहिए.
- डिसप्ले नेम 64 बाइट से कम होने चाहिए (क्योंकि ये वर्ण UTF-8 में दिखाए जाते हैं. इसलिए, कुछ भाषाओं में हर वर्ण को एक से ज़्यादा बाइट से दिखाया जा सकता है).
- जानकारी 1000 बाइट से कम होनी चाहिए.
डेटा अपलोड करते समय:
- CSV, GeoJSON, और KML फ़ाइल टाइप का इस्तेमाल किया जा सकता है.
- फ़ाइल का साइज़ 350 एमबी से ज़्यादा नहीं होना चाहिए.
- विशेषता कॉलम के नाम स्ट्रिंग "?_" से शुरू नहीं हो सकते.
- 3-डाइमेंशन वाली ज्यामितियां काम नहीं करतीं. इसमें WKT फ़ॉर्मैट में "Z" सफ़िक्स और GeoJSON फ़ॉर्मैट में ऐल्टिट्यूड कोऑर्डिनेट शामिल है.
डेटा तैयार करने के सबसे सही तरीके
अगर आपका सोर्स डेटा जटिल या बड़ा है, जैसे कि डेंसिटी पॉइंट, लंबी लाइनस्ट्रिंग या पॉलीगॉन (अक्सर 50 एमबी से बड़ी सोर्स फ़ाइल का साइज़ इस कैटगरी में आता है), तो विज़ुअल मैप में सबसे अच्छी परफ़ॉर्मेंस पाने के लिए डेटा अपलोड करने से पहले उसे आसान बनाएं.
यहां अपना डेटा तैयार करने के कुछ सबसे सही तरीके बताए गए हैं:
- सुविधा की प्रॉपर्टी को छोटा करना. सिर्फ़ अपने मैप को स्टाइल करने के लिए ज़रूरी फ़ीचर प्रॉपर्टी ही रखें, जैसे कि "id" और "category". आपके पास किसी क्लाइंट ऐप्लिकेशन की सुविधा में अन्य प्रॉपर्टी को जोड़ने की सुविधा होती है. इसके लिए, आपको यूनीक आइडेंटिफ़ायर कुंजी पर डेटा-ड्रिवन स्टाइल का इस्तेमाल करना होगा. उदाहरण के लिए, डेटा-ड्रिवन स्टाइल की मदद से रीयल टाइम में अपना डेटा देखना देखें.
- जहां संभव हो, प्रॉपर्टी ऑब्जेक्ट के लिए आसान डेटा टाइप इस्तेमाल करें, जैसे कि पूर्णांक, टाइल के साइज़ को कम करने और मैप की परफ़ॉर्मेंस को बेहतर बनाने के लिए.
- फ़ाइल अपलोड करने से पहले जटिल ज्यामितियां आसान बनाएं. इसके लिए, अपनी पसंद के जियोस्पेशियल टूल का इस्तेमाल किया जा सकता है. जैसे, ओपन सोर्स Mapshaper.org सुविधा. इसके अलावा, BigQuery में कॉम्प्लेक्स पॉलीगॉन ज्यामिति का इस्तेमाल करके ST_Simplify का इस्तेमाल किया जा सकता है.
- फ़ाइल अपलोड करने से पहले बहुत सघन बिंदु. ऐसा करने के लिए, अपनी पसंद के जियोस्पेशियल टूल का इस्तेमाल किया जा सकता है. जैसे, ओपन सोर्स के turf.js क्लस्टर फ़ंक्शन या BigQuery में सघन बिंदु वाली ज्यामितीय आकृतियों के लिए ST_CLUSTERDBSCAN का इस्तेमाल करना.
डेटासेट और BigQuery की मदद से अपने डेटा को विज़ुअलाइज़ करना में, डेटासेट को इस्तेमाल करने के सबसे सही तरीकों के बारे में ज़्यादा जानकारी देखें.
GeoJSON से जुड़ी ज़रूरी शर्तें
Maps Datasets API मौजूदा GeoJSON खास जानकारी के साथ काम करता है. Maps Datasets API, GeoJSON फ़ाइलों के साथ काम करता है जिनमें इनमें से किसी भी तरह का ऑब्जेक्ट होता है:
- ज्यामिति ऑब्जेक्ट. ज्यामिति ऑब्जेक्ट एक जगह का आकार होता है, जिसमें वैकल्पिक छेद वाले पॉइंट, लाइन, और पॉलीगॉन मिलकर होते हैं.
- फ़ीचर ऑब्जेक्ट. किसी फ़ीचर ऑब्जेक्ट में एक ज्यामिति के साथ-साथ अतिरिक्त नाम/वैल्यू पेयर होते हैं, जिनका मतलब ऐप्लिकेशन के हिसाब से अलग-अलग होता है.
- कलेक्शन दिखाएं. सुविधा संग्रह, फ़ीचर ऑब्जेक्ट का एक सेट होता है.
Maps Datasets API, GeoJSON फ़ाइलों के साथ काम नहीं करता है जिनमें WGS84 के अलावा, किसी कोऑर्डिनेट रेफ़रंस सिस्टम (CRS) में डेटा होता है.
GeoJSON के बारे में ज़्यादा जानकारी के लिए, आरएफ़सी 7946 का पालन करने वाला देखें.
KML की ज़रूरी शर्तें
Maps Datasets API की ज़रूरी शर्तें:
- सभी यूआरएल, फ़ाइल से जुड़े हुए (या मिलते-जुलते) होने चाहिए.
- पॉइंट, लाइन, और पॉलीगॉन की ज्यामितियां इस्तेमाल की जा सकती हैं.
- डेटा के सभी एट्रिब्यूट को स्ट्रिंग माना जाता है.
- फ़ाइल के बाहर तय किए गए आइकॉन या
<styleUrl>
. - नेटवर्क लिंक, जैसे कि
<NetworkLink>
- ग्राउंड ओवरले, जैसे कि
<GroundOverlay>
- 3D ज्यामितियां या ऊंचाई से संबंधित कोई भी टैग, जैसे कि
<altitudeMode>
- कैमरे की खास जानकारी, जैसे कि
<LookAt>
- KML फ़ाइल में तय की गई शैलियां.
CSV की ज़रूरी शर्तें
CSV फ़ाइलों के लिए, प्राथमिकता के हिसाब से इस्तेमाल किए जा सकने वाले कॉलम के नाम नीचे दिए गए हैं:
latitude
,longitude
lat
,long
x
,y
wkt
(जाने-पहचाने टेक्स्ट)address
,city
,state
,zip
address
- एक कॉलम जिसमें पते की सारी जानकारी होती है, जैसे
1600 Amphitheatre Parkway Mountain View, CA 94043
उदाहरण के लिए, आपकी फ़ाइल में x
, y
, और wkt
नाम के कॉलम हैं.
x
और y
की प्राथमिकता ज़्यादा है. इन्हें ऊपर दी गई सूची में इस्तेमाल किए जा सकने वाले कॉलम के नामों के क्रम से तय किया जाता है. इसलिए, x
और y
कॉलम की वैल्यू का इस्तेमाल किया जाता है और wkt
कॉलम को अनदेखा कर दिया जाता है.
इसके अलावा:
- हर कॉलम का नाम एक ही कॉलम से जुड़ा होना चाहिए. इसका मतलब है कि आपके पास
xy
नाम का ऐसा कॉलम नहीं हो सकता जिसमें x और y दोनों कोऑर्डिनेट डेटा शामिल हो. x और y कोऑर्डिनेट अलग-अलग कॉलम में होने चाहिए. - कॉलम के नाम केस-इनसेंसिटिव होते हैं.
- कॉलम के नामों का क्रम कोई मायने नहीं रखता. उदाहरण के लिए, अगर आपकी CSV फ़ाइल में
lat
औरlong
कॉलम हैं, तो वे किसी भी क्रम में हो सकते हैं.
डेटा अपलोड करने में होने वाली गड़बड़ियां ठीक करना
किसी डेटासेट में डेटा अपलोड करते समय, आपको इस सेक्शन में बताई गई आम गड़बड़ियों में से किसी एक का अनुभव हो सकता है.
GeoJSON से जुड़ी गड़बड़ियां
GeoJSON की सामान्य गड़बड़ियों में ये शामिल हैं:
type
फ़ील्ड मौजूद नहीं है याtype
कोई स्ट्रिंग नहीं है. अपलोड की गई GeoJSON डेटा फ़ाइल में, हर फ़ीचर ऑब्जेक्ट और जियोमेट्री ऑब्जेक्ट की परिभाषा के हिस्से के तौर पर,type
नाम का एक स्ट्रिंग फ़ील्ड होना चाहिए.
KML गड़बड़ियां
KML की सामान्य गड़बड़ियों में ये शामिल हैं:
- डेटा फ़ाइल में, ऊपर दी गई सूची में काम न करने वाली कोई KML सुविधा नहीं होनी चाहिए. ऐसा न करने पर, हो सकता है कि डेटा इंपोर्ट न हो.
CSV फ़ाइल में गड़बड़ियां
CSV फ़ाइल में आम तौर पर होने वाली गड़बड़ियां:
- ज्यामिति कॉलम की कुछ पंक्तियों में वैल्यू नहीं हैं. CSV फ़ाइल की सभी पंक्तियों में ज्यामिति कॉलम के लिए
ऐसे मान होने चाहिए जो खाली न हों. ज्यामिति कॉलम में ये शामिल हैं:
latitude
,longitude
lat
,long
x
,y
wkt
address
,city
,state
,zip
address
- एक कॉलम जिसमें पते की सारी जानकारी होती है, जैसे
1600 Amphitheatre Parkway Mountain View, CA 94043
- अगर
x
औरy
आपके ज्यामिति कॉलम हैं, तो पक्का करें कि यूनिट देशांतर और अक्षांश हों. कुछ सार्वजनिक डेटासेट,x
औरy
हेडर के तहत अलग-अलग कोऑर्डिनेट सिस्टम का इस्तेमाल करते हैं. गलत इकाइयों का इस्तेमाल करने पर, डेटासेट इंपोर्ट हो सकता है. हालांकि, रेंडर किया गया डेटा, ऐसी जगहों पर डेटासेट पॉइंट दिखा सकता है जहां इसकी उम्मीद नहीं थी.
डेटासेट बनाना
डेटासेट एंडपॉइंट पर POST
अनुरोध भेजकर, डेटासेट बनाएं:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets
डेटासेट तय करने वाले अनुरोध में, JSON बॉडी पास करें. इसलिए, आपको ये करने होंगे:
डेटासेट के
displayName
के बारे में बताएं. सभी डेटासेट के लिए,displayName
की वैल्यू यूनीक होनी चाहिए.usage
कोUSAGE_DATA_DRIVEN_STYLING
पर सेट करें.
उदाहरण के लिए:
curl -X POST -d '{ "displayName": "My Test Dataset", "usage": "USAGE_DATA_DRIVEN_STYLING" }' \ -H 'X-Goog-User-Project: PROJECT_NUMBER_OR_ID' \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $TOKEN" \ https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets
जवाब में डेटासेट का आईडी, projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID
के तौर पर, और ज़्यादा जानकारी के साथ दिया जाता है. डेटासेट को अपडेट करने या उसमें बदलाव करने का अनुरोध करते समय,
डेटासेट आईडी का इस्तेमाल करें.
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46", "displayName": "My Test Dataset", "usage": [ "USAGE_DATA_DRIVEN_STYLING" ], "createTime": "2022-08-15T17:50:00.189682Z", "updateTime": "2022-08-15T17:50:00.189682Z" }
डेटासेट में डेटा अपलोड करना
डेटासेट बनाने के बाद, Google Cloud Storage से या किसी लोकल फ़ाइल से डेटासेट में डेटा अपलोड करें.
Cloud Storage से डेटा अपलोड करना
Cloud Storage से अपने डेटासेट में अपलोड करने के लिए, डेटासेट के एंडपॉइंट पर POST
का अनुरोध भेजा जाता है. इसमें डेटासेट का आईडी भी शामिल होता है:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
JSON के अनुरोध के मुख्य हिस्से में:
Cloud Storage में मौजूद डेटा वाले संसाधन का फ़ाइल पाथ बताने के लिए,
inputUri
का इस्तेमाल करें. यह पाथgs://GCS_BUCKET/FILE
के तौर पर है.अनुरोध करने वाले उपयोगकर्ता के पास, स्टोरेज ऑब्जेक्ट व्यूअर की भूमिका या कोई ऐसी अन्य भूमिका होनी चाहिए जिसमें
storage.objects.get
की अनुमति शामिल हो. Cloud Storage का ऐक्सेस मैनेज करने के बारे में ज़्यादा जानकारी के लिए, ऐक्सेस कंट्रोल की खास जानकारी देखें.डेटा का फ़ाइल फ़ॉर्मैट इनमें से किसी एक के तौर पर तय करने के लिए,
fileFormat
का इस्तेमाल करें:FILE_FORMAT_GEOJSON
(GeoJson फ़ाइल),FILE_FORMAT_KML
(KML फ़ाइल) याFILE_FORMAT_CSV
(CSV फ़ाइल).
उदाहरण के लिए:
curl -X POST -d '{ "gcs_source":{ "inputUri": "gs://my_bucket/my_csv_file", "fileFormat": "FILE_FORMAT_CSV" } }' \ -H 'X-Goog-User-Project: PROJECT_NUMBER_OR_ID' \ -H "content-type: application/json" \ -H "Authorization: Bearer $TOKEN" \ https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46:import
जवाब इस फ़ॉर्म में है:
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER" }
फ़ाइल में मौजूद डेटा अपलोड करना
किसी फ़ाइल से डेटा अपलोड करने के लिए, डेटासेट एंडपॉइंट पर एक एचटीटीपी POST
अनुरोध भेजें, जिसमें डेटासेट का आईडी भी शामिल हो:
https://mapsplatformdatasets.googleapis.com/upload/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
अनुरोध में ये चीज़ें शामिल हैं:
Goog-Upload-Protocol
हेडर कोmultipart
पर सेट किया गया है.metadata
प्रॉपर्टी, जिसमें अपलोड किए जाने वाले डेटा का टाइप बताने वाली फ़ाइल के पाथ के बारे में बताया गया है. यह जानकारी इनमें से किसी एक के तौर पर ली जा सकती है:FILE_FORMAT_GEOJSON
(GeoJSON फ़ाइल),FILE_FORMAT_KML
(KML फ़ाइल) याFILE_FORMAT_CSV
(CSV फ़ाइल).इस फ़ाइल की सामग्री का फ़ॉर्मैट नीचे दिया गया है:
{"local_file_source": {"file_format": "FILE_FORMAT_GEOJSON"}}
rawdata
प्रॉपर्टी, जिसमें GeoJSON, KML या CSV फ़ाइल का पाथ बताया जाता है, जिसमें अपलोड किया जाने वाला डेटा होता है.
नीचे दिया गया अनुरोध, दो फ़ाइलों का पाथ बताने के लिए, curl -F
विकल्प का इस्तेमाल करता है:
curl -X POST \ -H 'X-Goog-User-Project: PROJECT_NUMBER_OR_ID' \ -H "Authorization: Bearer $TOKEN" \ -H "X-Goog-Upload-Protocol: multipart" \ -F "metadata=@csv_metadata_file" \ -F "rawdata=@csv_data_file" \ https://mapsplatformdatasets.googleapis.com/upload/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46:import
जवाब इस फ़ॉर्म में है:
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER" }
डेटासेट में नया डेटा अपलोड करना
डेटासेट बनाने और शुरुआती डेटा अपलोड करने के बाद, डेटासेट की स्थिति STATE_COMPLETED
पर सेट हो जाती है. इसका मतलब है कि डेटासेट आपके ऐप्लिकेशन में इस्तेमाल करने के लिए तैयार है. डेटासेट के state
का पता लगाने के लिए, डेटासेट पाना देखें.
डेटासेट का नया वर्शन बनाने के लिए, डेटासेट में नया डेटा भी अपलोड किया जा सकता है. नया डेटा अपलोड करने के लिए, उसी प्रोसेस का इस्तेमाल करें जिसका इस्तेमाल आपने Cloud Storage से डेटा अपलोड करने या किसी फ़ाइल से डेटा अपलोड करने के लिए किया था. साथ ही, अपलोड करने के लिए नया डेटा तय करें.
अगर नया डेटा अपलोड हो जाता है, तो:
डेटासेट के नए वर्शन की स्थिति,
STATE_COMPLETED
पर सेट है.नया वर्शन, "ऐक्टिव" वर्शन बन जाता है और वह वर्शन बन जाता है जिसे आपका ऐप्लिकेशन इस्तेमाल करता है.
अगर अपलोड में कोई गड़बड़ी है, तो:
डेटासेट के नए वर्शन की स्थिति, इनमें से किसी एक स्थिति पर सेट है:
STATE_IMPORT_FAILED
STATE_PROCESSING_FAILED
STATE_PUBLISHING_FAILED
STATE_DELETION_FAILED
डेटासेट के सही तरीके से काम करने वाला पिछला वर्शन "चालू" वर्शन के तौर पर ही रहता है और वह वर्शन होता है जिसे आपके ऐप्लिकेशन में इस्तेमाल किया जाता है.