डेटासेट बनाने की प्रोसेस दो चरणों में होती है:
डेटासेट बनाने के लिए अनुरोध करें.
डेटासेट में डेटा अपलोड करने के लिए अनुरोध करें.
ज़रूरी शर्तें
डेटासेट बनाते समय:
- आपके Google Cloud प्रोजेक्ट में डिसप्ले नेम, यूनीक होने चाहिए.
- डिसप्ले नेम 64 बाइट से कम के होने चाहिए (क्योंकि ये वर्ण UTF-8 में दिखाए जाते हैं, इसलिए कुछ भाषाओं में हर वर्ण को एक से ज़्यादा बाइट में दिखाया जा सकता है).
- जानकारी 1000 बाइट से कम होनी चाहिए.
डेटा अपलोड करते समय:
- CSV, GeoJSON, और KML फ़ाइल टाइप का इस्तेमाल किया जा सकता है.
- फ़ाइल का साइज़ 350 एमबी से ज़्यादा नहीं होना चाहिए.
- एट्रिब्यूट कॉलम के नाम "?_" स्ट्रिंग से शुरू नहीं हो सकते.
- त्रि-आयामी ज्यामिति समर्थित नहीं हैं. इसमें WKT फ़ॉर्मैट में "Z" सफ़िक्स और GeoJSON फ़ॉर्मैट में ऊंचाई कोऑर्डिनेट शामिल है.
GeoJSON की ज़रूरी शर्तें
Maps डेटासेट एपीआई, मौजूदा GeoJSON स्पेसिफ़िकेशन के साथ काम करता है. Maps डेटासेट एपीआई, GeoJSON फ़ाइलों के साथ काम करता है जिनमें नीचे दिया गया कोई भी ऑब्जेक्ट टाइप शामिल होता है:
- जियोमेट्री की चीज़ें. ज्यामिति ऑब्जेक्ट एक जगह का आकार होता है. इसे पॉइंट, लाइनों, और पॉलीगॉन के कॉम्बिनेशन से बनाया जाता है, जिनमें वैकल्पिक छेद होते हैं.
- ऑब्जेक्ट दिखाएं. सुविधा ऑब्जेक्ट में एक ज्यामिति और अतिरिक्त नाम/वैल्यू के जोड़े होते हैं, जिनका मतलब ऐप्लिकेशन के हिसाब से अलग-अलग होता है.
- चुनिंदा कलेक्शन. फ़ीचर कलेक्शन, फ़ीचर ऑब्जेक्ट का सेट होता है.
Maps डेटासेट एपीआई, ऐसी GeoJSON फ़ाइलों के साथ काम नहीं करता जिनमें WGS84 के अलावा, किसी अन्य निर्देशांक रेफ़रंस सिस्टम (CRS) में डेटा मौजूद हो.
GeoJSON के बारे में ज़्यादा जानकारी पाने के लिए, RFC 7946 का पालन करना देखें.
KML की ज़रूरी शर्तें
Maps डेटासेट एपीआई की ये ज़रूरी शर्तें हैं:
- सभी यूआरएल, फ़ाइल के लोकल या उससे मिलते-जुलते होने चाहिए.
- पॉइंट, लाइन, और पॉलीगॉन ज्यामिति काम करती हैं.
- डेटा के सभी एट्रिब्यूट को स्ट्रिंग माना जाता है.
- फ़ाइल के बाहर परिभाषित किए गए आइकॉन या
<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 से डेटा अपलोड करना
डेटासेट एंडपॉइंट पर POST
अनुरोध भेजकर, Cloud Storage से अपने डेटासेट पर डेटा अपलोड किया जाता है. एंडपॉइंट में डेटासेट का आईडी भी शामिल होता है:
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" }