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