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

डेटासेट बनाने की प्रोसेस दो चरणों में होती है:

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

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

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

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

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

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