La creazione di un set di dati è un processo in due fasi:
Effettua una richiesta per creare il set di dati.
Effettua una richiesta per caricare i dati nel set di dati.
Prerequisiti
Quando crei un set di dati:
- I nomi visualizzati devono essere univoci all'interno del progetto Google Cloud.
- I nomi visualizzati devono contenere meno di 64 byte. Poiché questi caratteri sono rappresentati in formato UTF-8, in alcune lingue ogni carattere può essere rappresentato da più byte.
- Le descrizioni devono contenere meno di 1000 byte.
Durante il caricamento dei dati:
- I tipi di file supportati sono CSV, GeoJSON e KML.
- Le dimensioni massime supportate per i file sono 350 MB.
- I nomi delle colonne degli attributi non possono iniziare con la stringa "?_".
- Le geometrie tridimensionali non sono supportate. Ciò include il suffisso "Z" nel formato WKT e le coordinate dell'altitudine nel formato GeoJSON.
Requisiti di GeoJSON
L'API Maps Datasets supporta l'attuale specifica GeoJSON. L'API Maps Datasets supporta anche i file GeoJSON contenenti uno dei seguenti tipi di oggetti:
- Oggetti geometrici. Un oggetto geometrico è una forma spaziale, descritta come un'unione di punti, linee e poligoni, con fori facoltativi.
- Oggetti delle caratteristiche. Un oggetto feature contiene una geometria più ulteriori coppie nome/valore, il cui significato è specifico per l'applicazione.
- Raccolte di caratteristiche. Una raccolta di caratteristiche è un insieme di oggetti feature.
L'API Maps Datasets non supporta i file GeoJSON con dati in un sistema di riferimento delle coordinate (CRS) diverso da WGS84.
Per ulteriori informazioni su GeoJSON, consulta la pagina conforme a RFC 7946.
Requisiti KML
L'API Maps Datasets ha i seguenti requisiti:
- Tutti gli URL devono essere locali (o relativi) rispetto al file stesso.
- Geometrie di punti, linee e poligoni supportate.
- Tutti gli attributi dei dati sono considerati stringhe.
- Icone o
<styleUrl>
definiti all'esterno del file. - Link di rete, ad esempio
<NetworkLink>
- Overlay del suolo, ad esempio
<GroundOverlay>
- Geometrie 3D o qualsiasi tag relativo all'altitudine come
<altitudeMode>
- Specifiche della fotocamera, ad esempio
<LookAt>
- Stili definiti all'interno del file KML.
Requisiti CSV
Per i file CSV, i nomi delle colonne supportati sono elencati di seguito in ordine di priorità:
latitude
,longitude
lat
,long
x
,y
wkt
(testo noto)address
,city
,state
ezip
address
- Una singola colonna contenente tutte le informazioni sull'indirizzo, come
1600 Amphitheatre Parkway Mountain View, CA 94043
Ad esempio, il file contiene colonne denominate x
, y
e wkt
.
Poiché x
e y
hanno una priorità più elevata, come stabilito dall'ordine dei nomi delle colonne supportati nell'elenco precedente, vengono utilizzati i valori nelle colonne x
e y
e la colonna wkt
viene ignorata.
Inoltre:
- Ogni nome di colonna deve appartenere a una sola colonna. Ciò significa che non puoi avere una colonna denominata
xy
contenente dati per le coordinate x e y. Le coordinate x e y devono trovarsi in colonne separate. - I nomi delle colonne non fanno distinzione tra maiuscole e minuscole.
- L'ordine dei nomi delle colonne non è importante. Ad esempio, se il file CSV contiene
le colonne
lat
elong
, possono essere presenti in qualsiasi ordine.
Gestione degli errori di caricamento dei dati
Durante il caricamento dei dati in un set di dati, potresti riscontrare uno degli errori comuni descritti in questa sezione.
Errori di GeoJSON
Gli errori più comuni di GeoJSON includono:
- Campo
type
mancante oppuretype
non è una stringa. Il file di dati GeoJSON caricato deve contenere un campo stringa denominatotype
come parte di ogni oggetto Feature e di definizione dell'oggetto Geometry.
Errori KML
Gli errori KML più comuni sono:
- Il file di dati non deve contenere nessuna delle funzionalità KML non supportate elencate sopra, altrimenti l'importazione dei dati potrebbe non riuscire.
Errori CSV
Gli errori comuni del file CSV includono:
- In alcune righe mancano valori per una colonna geometrica. Tutte le righe di un file CSV devono contenere valori non vuoti per le colonne della geometria. Le colonne della geometria includono:
latitude
,longitude
lat
,long
x
,y
wkt
address
,city
,state
ezip
address
- Una singola colonna contenente tutte le informazioni sull'indirizzo, come
1600 Amphitheatre Parkway Mountain View, CA 94043
- Se
x
ey
sono le colonne geometriche, assicurati che le unità siano longitudine e latitudine. Alcuni set di dati pubblici utilizzano sistemi di coordinate diversi sotto le intestazionix
ey
. Se vengono utilizzate unità errate, il set di dati potrebbe essere importato correttamente, ma i dati sottoposti a rendering possono mostrare i punti del set di dati in località impreviste.
invia una richiesta per creare il set di dati
Crea un set di dati inviando una richiesta POST
all'endpoint set di dati:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets
Passa un corpo JSON alla richiesta che definisce il set di dati. Devi:
Specifica il
displayName
del set di dati. Il valore didisplayName
deve essere univoco per tutti i set di dati.Imposta
usage
suUSAGE_DATA_DRIVEN_STYLING
.
Ad esempio:
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
La risposta contiene l'ID del set di dati nel formato projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID
insieme a informazioni aggiuntive. Utilizza l'ID del set di dati quando effettui richieste
di aggiornamento o modifica del set di dati.
{ "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" }
Effettua una richiesta per caricare dati nel set di dati
Dopo aver creato il set di dati, carica i dati da Google Cloud Storage o da un file locale nel set di dati.
Carica i dati da Cloud Storage
Puoi caricare da Cloud Storage il tuo set di dati inviando una richiesta POST
all'endpoint
set di dati che include anche l'ID del set di dati:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
Nel corpo della richiesta JSON:
Utilizza
inputUri
per specificare il percorso del file della risorsa contenente i dati in Cloud Storage. Questo percorso ha il formatogs://GCS_BUCKET/FILE
.L'utente che effettua la richiesta richiede il ruolo Visualizzatore oggetti Storage o qualsiasi altro ruolo che includa l'autorizzazione
storage.objects.get
. Per ulteriori informazioni sulla gestione dell'accesso a Cloud Storage, consulta la Panoramica del controllo dell'accesso.Utilizza
fileFormat
per specificare il formato di file dei dati come:FILE_FORMAT_GEOJSON
(file GeoJson),FILE_FORMAT_KML
(file KML) oFILE_FORMAT_CSV
(file CSV).
Ad esempio:
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
La risposta è nel formato:
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER" }
Carica i dati da un file
Per caricare i dati da un file, invia una richiesta POST
HTTP all'endpoint set di dati che include anche l'ID del set di dati:
https://mapsplatformdatasets.googleapis.com/upload/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
La richiesta contiene:
L'intestazione
Goog-Upload-Protocol
è impostata sumultipart
.La proprietà
metadata
che specifica il percorso di un file che specifica il tipo di dati da caricare, ad esempio:FILE_FORMAT_GEOJSON
(file GeoJSON),FILE_FORMAT_KML
(file KML) oFILE_FORMAT_CSV
(file CSV).I contenuti di questo file hanno il seguente formato:
{"local_file_source": {"file_format": "FILE_FORMAT_GEOJSON"}}
La proprietà
rawdata
che specifica il percorso del file GeoJSON, KML o CSV contenente i dati da caricare.
La seguente richiesta utilizza l'opzione curl -F
per specificare il percorso dei due file:
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
La risposta è nel formato:
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER" }