डेटासेट बनाना

डेटासेट बनाना, दो चरणों वाली प्रक्रिया है:

  1. डेटासेट बनाने के लिए अनुरोध करें.

  2. डेटासेट में डेटा अपलोड करने के लिए अनुरोध करें.

ज़रूरी शर्तें

डेटासेट बनाते समय:

  • आपके 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 डेटासेट एपीआई की ये ज़रूरी शर्तें हैं:

  • सभी यूआरएल, फ़ाइल से जुड़े होने चाहिए या लोकल होने चाहिए.
  • पॉइंट, लाइन, और पॉलीगॉन जियोमेट्री का इस्तेमाल किया जा सकता है.
  • सभी डेटा एट्रिब्यूट को स्ट्रिंग माना जाता है.
KML की ये सुविधाएं काम नहीं करती हैं:
  • फ़ाइल के बाहर दिए गए आइकॉन या <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"
}