ایجاد یک مجموعه داده یک فرآیند دو مرحله ای است:
برای ایجاد مجموعه داده درخواست دهید.
درخواستی برای آپلود داده ها در مجموعه داده ارائه دهید.
پیش نیازها
هنگام ایجاد یک مجموعه داده:
- نامهای نمایشی باید در پروژه Google Cloud شما منحصربهفرد باشند.
- نام های نمایشی باید کمتر از 64 بایت باشند (از آنجایی که این کاراکترها در UTF-8 نشان داده می شوند، در برخی از زبان ها هر کاراکتر را می توان با چندین بایت نشان داد).
- توضیحات باید کمتر از 1000 بایت باشد.
هنگام آپلود داده ها:
- انواع فایل های پشتیبانی شده CSV، GeoJSON و KML هستند.
- حداکثر اندازه فایل پشتیبانی شده 350 مگابایت است.
- نام ستون های مشخصه نمی تواند با رشته "?_" شروع شود.
- هندسه های سه بعدی پشتیبانی نمی شوند. این شامل پسوند "Z" در قالب WKT و مختصات ارتفاع در قالب GeoJSON است.
الزامات GeoJSON
Maps Datasets API از مشخصات GeoJSON فعلی پشتیبانی می کند. Maps Datasets API همچنین از فایلهای GeoJSON که حاوی هر یک از انواع شیء زیر هستند پشتیبانی میکند:
- اجسام هندسی شیء هندسی یک شکل فضایی است که به عنوان اتحاد نقاط، خطوط و چندضلعی ها با سوراخ های اختیاری توصیف می شود.
- اشیاء را مشخص کنید . یک شیء ویژگی شامل یک هندسه به اضافه جفتهای نام/مقدار اضافی است که معنای آنها مختص کاربرد است.
- مجموعه های ویژه مجموعه ویژگی مجموعه ای از اشیاء ویژگی است.
Maps Datasets API از فایلهای GeoJSON که دادههایی در یک سیستم مرجع مختصات (CRS) غیر از WGS84 دارند، پشتیبانی نمیکند.
برای اطلاعات بیشتر در مورد GeoJSON، مطابق با RFC 7946 را ببینید.
الزامات KML
Maps Datasets API شرایط زیر را دارد:
- همه URL ها باید محلی (یا نسبی) به خود فایل باشند.
- هندسه نقطه، خط و چند ضلعی پشتیبانی می شود.
- تمام ویژگی های داده رشته ها در نظر گرفته می شوند.
- نمادها یا
<styleUrl>
که خارج از فایل تعریف شده است. - پیوندهای شبکه، مانند
<NetworkLink>
- پوشش های زمینی، مانند
<GroundOverlay>
- هندسه های سه بعدی یا هر برچسب مرتبط با ارتفاع مانند
<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
به عنوان بخشی از هر شی Feature و تعریف شی هندسه باشد.
خطاهای 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 یا از یک فایل محلی در مجموعه داده آپلود کنید.
داده ها را از فضای ذخیره سازی ابری بارگذاری کنید
با ارسال یک درخواست POST
به نقطه پایانی مجموعه دادهها که شامل شناسه مجموعه داده نیز میشود، از فضای ذخیرهسازی ابری در مجموعه داده خود آپلود میکنید:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
در بدنه درخواست JSON:
از
inputUri
برای تعیین مسیر فایل به منبع حاوی داده در Cloud Storage استفاده کنید. این مسیر به شکلgs:// GCS_BUCKET / FILE
است.کاربر درخواست کننده به نقش Storage Object Viewer یا هر نقش دیگری که شامل مجوز
storage.objects.get
باشد نیاز دارد. برای اطلاعات بیشتر در مورد مدیریت دسترسی به فضای ذخیرهسازی ابری، به نمای کلی کنترل دسترسی مراجعه کنید.از
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" }
داده ها را از یک فایل آپلود کنید
برای آپلود داده از یک فایل، یک درخواست HTTP 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" }