יצירת מערך נתונים היא תהליך דו-שלבי:
שולחים בקשה ליצירת מערך הנתונים.
שולחים בקשה להעלאת נתונים למערך הנתונים.
אחרי ההעלאה הראשונית של הנתונים, תוכלו להעלות נתונים חדשים למערך הנתונים כדי ליצור גרסה חדשה של מערך הנתונים.
דרישות מוקדמות
כשיוצרים מערך נתונים:
- השמות המוצגים חייבים להיות ייחודיים בפרויקט שלכם ב-Google Cloud.
- השמות המוצגים חייבים להיות קטנים מ-64 בייטים (מכיוון שהתווים האלה מיוצגים ב-UTF-8, בשפות מסוימות, כל תו יכול להיות מיוצג על ידי מספר בייטים).
- התיאורים חייבים להיות קטנים מ-1,000 בייטים.
כשמעלים נתונים:
- סוגי הקבצים הנתמכים הם CSV , GeoJSON ו-KML.
- גודל הקובץ המקסימלי הנתמך הוא 350MB.
- השמות של עמודות המאפיינים לא יכולים להתחיל במחרוזת "?_".
- אין תמיכה בגיאומטריה תלת ממדית. כולל האות Z סיומת בפורמט WKT, ואת קואורדינטת הגובה בפורמט GeoJSON.
שיטות מומלצות להכנת נתונים
אם נתוני המקור מורכבים או גדולים, כמו נקודות צפופות, מחרוזות קווים ארוכים או פוליגונים (בדרך כלל קובצי מקור בגודל של יותר מ-50MB נכללים בקטגוריה הזו), כדאי לפשט את הנתונים. לפני ההעלאה כדי להשיג את הביצועים הטובים ביותר במפה חזותית.
ריכזנו כאן כמה שיטות מומלצות להכנת הנתונים:
- מזעור המאפיינים של התכונות. שמור רק את מאפייני התכונות הדרושים לסגנון לדוגמה, 'id'. ו-'category'. אפשר לצרף נכסים נוספים לתכונה מסוימת בלקוח באמצעות סגנונות מבוססי-נתונים במפתח מזהה ייחודי. לדוגמה, ראה הצגת הנתונים בזמן אמת בעזרת סגנון מבוסס-נתונים.
- מומלץ להשתמש בסוגי נתונים פשוטים בשביל אובייקטים של מאפיינים, כמו מספרים שלמים, כדי להקטין את גודל המשבצת ולשפר את ביצועי המפה.
- לפני העלאת קובץ, הגדירו צורות גיאומטריות מורכבות. אפשר לעשות זאת כלי גיאו-מרחבי לבחירתכם, כמו קוד פתוח. בכלי Mapshaper.org, או ב-BigQuery באמצעות ST_Simplify של פוליגונים מורכבים של פוליגונים.
- לאסוף נקודות צפופות מאוד לפני העלאת קובץ. אפשר לעשות זאת כלי גיאו-מרחבי לבחירתכם, כמו קוד פתוח. פונקציות של אשכול turf.js או ב-BigQuery באמצעות ST_CLUSTERDBSCAN בפורמט גיאומטרי של נקודות צפופות.
הנחיות נוספות לגבי שיטות מומלצות לגבי מערכי נתונים זמינות המחשה חזותית של נתונים באמצעות מערכי נתונים ו-BigQuery.
דרישות לגבי GeoJSON
Maps Datasets API תומך המפרט של GeoJSON. ב-Maps Datasets API יש גם תמיכה בקובצי GeoJSON שמכילים כל אחד מסוגי האובייקטים הבאים:
- אובייקטים גיאומטריים. אובייקט גיאומטרי הוא צורה מרחבית, שמתוארת כאיחוד של נקודות, קווים ומצולעים עם חורים אופציונליים.
- הצגת אובייקטים. אובייקט של פריט מכיל גיאומטריה בתוספת צמדים של שם/ערך, שהמשמעות שלהם היא ספציפית לאפליקציה.
- אוספים של תכונות אוסף פיצ'רים הוא קבוצה של אובייקטים של ישויות.
ממשק ה-API של מפות Google Datasets לא תומך בקובצי GeoJSON שמכילים נתונים במערכת ייחוס קואורדינטות (CRS) מלבד WGS84.
למידע נוסף על GeoJSON, אפשר לעיין במאמר תאימות לתקן RFC 7946.
דרישות KML
ממשק ה-API של מפות Google כולל את הדרישות הבאות:
- כל כתובות ה-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
נקודת קצה של datasets:
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
כדי להעלות מ-Cloud Storage למערך הנתונים, שולחים בקשת POST
datasets,
כולל את המזהה של מערך הנתונים:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
בגוף הבקשה ב-JSON:
צריך להשתמש ב-
inputUri
כדי לציין את הנתיב של הקובץ למשאב שמכיל את הנתונים ב-Cloud Storage. הנתיב הזה מופיע בפורמט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" }
העלאת נתונים מקובץ
כדי להעלות נתונים מקובץ, צריך לשלוח בקשת HTTP POST
אל
datasets,
כולל את המזהה של מערך הנתונים:
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" }
העלאת נתונים חדשים למערך הנתונים
אחרי שיצרתם את מערך הנתונים ותעלו את הנתונים הראשוניים בהצלחה, המצב
של מערך הנתונים מוגדר ל-STATE_COMPLETED
. כלומר מערך הנתונים מוכן
לשימוש באפליקציה. כדי לקבוע את ה-state
של מערך הנתונים, ראו קבלת
של מערך הנתונים.
אפשר גם להעלות נתונים חדשים למערך הנתונים כדי ליצור גרסה חדשה של של הכיתובים. כדי להעלות נתונים חדשים, מבצעים את אותו תהליך שבו השתמשתם כדי להעלות נתונים. מ-Cloud Storage או להעלות נתונים מקובץ, ולציין את הנתונים החדשים שרוצים להעלות.
אם הנתונים החדשים יועלו בהצלחה:
המצב של הגרסה החדשה של מערך הנתונים מוגדר כ-
STATE_COMPLETED
.הגרסה החדשה הופכת ל"פעילה" היא הגרסה שבה נעשה שימוש אפליקציה.
אם יש שגיאה בהעלאה:
המצב של הגרסה החדשה של מערך הנתונים מוגדר לאחד מהמצבים הבאים:
STATE_IMPORT_FAILED
STATE_PROCESSING_FAILED
STATE_PUBLISHING_FAILED
STATE_DELETION_FAILED
הגרסה הקודמת של מערך הנתונים תישאר 'פעילה' והוא הגרסה שבה האפליקציה משתמשת.