Das Erstellen eines Datasets erfolgt in zwei Schritten:
Senden Sie eine Anfrage zum Erstellen des Datasets.
Senden Sie eine Anfrage zum Hochladen von Daten in das Dataset.
Nach dem ersten Hochladen von Daten können Sie neue Daten in das Dataset hochladen, um eine neue Version des Datasets zu erstellen.
Dataset erstellen
Senden Sie eine POST Anfrage an den
Endpunkt für Datasets, um ein Dataset zu erstellen:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets
Übergeben Sie einen JSON-Text an die Anfrage, in dem das Dataset definiert wird. Die folgenden Anforderungen müssen erfüllt sein:
Geben Sie den
displayNamedes Datasets an. Der Wert vondisplayNamemuss für alle Datasets eindeutig sein.Setzen Sie
usageaufUSAGE_DATA_DRIVEN_STYLING.
Beispiel:
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"Die Antwort enthält die ID des Datasets im Format
projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID
sowie zusätzliche Informationen. Verwenden Sie die Dataset-ID, wenn Sie Anfragen zum Aktualisieren oder Ändern des Datasets senden.
{
"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"
}
Daten in das Dataset hochladen
Nachdem Sie das Dataset erstellt haben, laden Sie die Daten aus Google Cloud Storage oder aus einer lokalen Datei in das Dataset hoch.
Der Uploadvorgang ist asynchron. Nachdem Sie die Daten hochgeladen haben, werden sie aufgenommen und verarbeitet. Das bedeutet, dass Sie eine HTTP-GET-Anfrage senden müssen, um den Status des Datasets zu beobachten und festzustellen, wann es verwendet werden kann oder ob Fehler aufgetreten sind. Weitere Informationen finden Sie unter Status der Datenverarbeitung abrufen.
Daten aus Cloud Storage hochladen
Senden Sie eine POST Anfrage an den
Endpunkt für Datasets, die auch
die ID des Datasets enthält, um Daten aus Cloud Storage in Ihr Dataset hochzuladen:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
Im JSON-Anfragetext:
Geben Sie mit
inputUriden Dateipfad zur Ressource an, die die Daten in Cloud Storage enthält. Dieser Pfad hat das Formatgs://GCS_BUCKET/FILE.Der Nutzer, der die Anfrage sendet, benötigt die Rolle „Storage Object Viewer“ oder eine andere Rolle mit der Berechtigung
storage.objects.get. Weitere Informationen zum Verwalten des Zugriffs auf Cloud Storage finden Sie unter Übersicht über die Zugriffssteuerung.Geben Sie mit
fileFormatdas Dateiformat der Daten an:FILE_FORMAT_GEOJSON(GeoJSON-Datei),FILE_FORMAT_KML(KML-Datei) oderFILE_FORMAT_CSV(CSV-Datei).
Beispiel:
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"Die Antwort hat das folgende Format:
{
"name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER"
}
Daten aus einer Datei hochladen
Senden Sie eine HTTP-POST Anfrage an den
Endpunkt für Datasets, die auch
die ID des Datasets enthält, um Daten aus einer Datei hochzuladen:
https://mapsplatformdatasets.googleapis.com/upload/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
Die Anfrage enthält Folgendes:
Der Header
Goog-Upload-Protocolist aufmultipartgesetzt.Die Property
metadatagibt den Pfad zu einer Datei an, in der der Typ der hochzuladenden Daten angegeben ist:FILE_FORMAT_GEOJSON(GeoJSON-Datei),FILE_FORMAT_KML(KML-Datei) oderFILE_FORMAT_CSV(CSV-Datei).Der Inhalt dieser Datei hat das folgende Format:
{"local_file_source": {"file_format": "FILE_FORMAT_GEOJSON"}}Die Property
rawdatagibt den Pfad zur GeoJSON-, KML- oder CSV-Datei an, die die hochzuladenden Daten enthält.
In der folgenden Anfrage wird die Option curl -F verwendet, um den Pfad zu den beiden Dateien anzugeben:
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"
Die Antwort hat das folgende Format:
{
"name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER"
}
Status der Datenverarbeitung abrufen
Der Uploadvorgang ist asynchron. Nachdem der API-Aufruf zum Hochladen der Daten in das Dataset zurückgegeben wurde, müssen Sie das Dataset abfragen, um festzustellen, ob die Datenaufnahme und -verarbeitung erfolgreich waren.
Verwenden Sie Dataset abrufen, um den state des
Datasets zu ermitteln. Während die Daten verarbeitet werden, ist state beispielsweise auf STATE_PROCESSING gesetzt. Wenn das Dataset in Ihrer App verwendet werden kann, ist state auf STATE_COMPLETED gesetzt.
Senden Sie beispielsweise einen GET-Aufruf für das Dataset:
curl -X GET \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ "https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46"
Bei einem erfolgreichen Upload ist der state des Datasets STATE_COMPLETED:
{ "name": "projects/119757857/datasets/f57074a0-a8b6-403e-9df1-e9fc46", "displayName": "My Test Dataset", "description": " ", "versionId": "837c5a9e-c885-4a5f-a462-7e35673e5218", "usage": [ "USAGE_DATA_DRIVEN_STYLING" ], "localFileSource": { "filename": "Parks_Properties_20240529.csv", "fileFormat": "FILE_FORMAT_CSV" }, "createTime": "2024-05-30T16:41:11.130816Z", "updateTime": "2024-05-30T16:41:14.416130Z", "versionCreateTime": "2024-05-30T16:41:14.416130Z", "status": { "state": "STATE_COMPLETED", }, "sizeBytes": "6916924", "downloadable": true }
Wenn die Datenverarbeitung fehlschlägt, wird state auf einen anderen Wert als
STATE_COMPLETED gesetzt, z. B. STATE_PUBLISHING_FAILED oder einen Status, der mit dem
String _FAILED endet.
Sie können beispielsweise Daten in ein Dataset hochladen und dann eine GET-Anfrage senden, um die Dataset-Details abzurufen. Neben der Property state enthält die Antwort auch eine einzelne Property errorMessage mit einer Beschreibung des Fehlers.
{ "name": "projects/119757857/datasets/f57074a0-a8b6-403e-9df1-e9fc46", "displayName": "My Test Dataset", "description": " ", "versionId": "837c5a9e-c885-4a5f-a462-7e35673e5218", "usage": [ "USAGE_DATA_DRIVEN_STYLING" ], "localFileSource": { "filename": "Parks_Properties_20240529.csv", "fileFormat": "FILE_FORMAT_CSV" }, "createTime": "2024-05-30T16:41:11.130816Z", "updateTime": "2024-05-30T16:41:14.416130Z", "versionCreateTime": "2024-05-30T16:41:14.416130Z", "status": { "state": "STATE_PUBLISHING_FAILED", "errorMessage": "INVALID_ARGUMENT: Skipping row because address could not be geocoded: 5521 18 AVENUE (from line 79)" }, "sizeBytes": "6916924", "downloadable": true }
Fehler bei der Datenverarbeitung abrufen
Wenn die Datenaufnahme und -verarbeitung fehlschlagen, enthält die Property errorMessage eine einzelne Nachricht, in der der Fehler beschrieben wird. Eine einzelne Fehlermeldung enthält jedoch nicht unbedingt genügend Informationen, um die Probleme zu identifizieren und zu beheben.
Rufen Sie die
fetchDatasetErrors
API auf, um vollständige Fehlerinformationen zu erhalten. Diese API gibt alle Fehler bei der Datenverarbeitung zurück, die mit einem Dataset verknüpft sind:
curl -X GET \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ "https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46:fetchDatasetErrors"
Die Antwort enthält das Array errors. Dieses Array enthält pro Aufruf bis zu 50 Fehler vom
Typ Status
und unterstützt insgesamt bis zu 500 Fehler:
{ "nextPageToken": "cigKJkIkMTU3MzM0NjQtYzlmMy00YzYxLWIxM2YtYmVkYjFjYjRkYzRj", "errors": [ { "code": 3, "message": "INVALID_ARGUMENT: No address was derived from fields 2. (from line 631)" }, { "code": 3, "message": "INVALID_ARGUMENT: No address was derived from fields 2. (from line 457)" }, { "code": 3, "message": "INVALID_ARGUMENT: No address was derived from fields 2. (from line 31)" }, ... ] }
Wenn mehr als 50 Fehler vorhanden sind, also mehr als eine Seite mit Fehlern, enthält die Antwort ein Seitentoken im Feld nextPageToken.
Übergeben Sie diesen Wert im Abfrageparameter pageToken eines nachfolgenden Aufrufs, um die nächste Seite mit Fehlern abzurufen. Wenn nextPageToken leer ist, gibt es keine weiteren Seiten.
So rufen Sie beispielsweise die nächste Seite mit Fehlern mit dem Token aus der vorherigen Antwort ab:
curl -X GET \ -H "content-type: application/json" \ -H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \ -H "Authorization: Bearer $TOKEN" \ "https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/f57074a0-a8b6-403e-9df1-e9fc46:fetchDatasetErrors?pageToken=cigKJkIkMTU3MzM0NjQtYzlmMy00YzYxLWIxM2YtYmVkYjFjYjRkYzRj"
Standardmäßig enthält die Antwort maximal 50 Fehler pro Seite. Verwenden Sie den Abfrageparameter pageSize, um die Seitengröße zu steuern.
Neue Daten in das Dataset hochladen
Nachdem Sie das Dataset erstellt und die ersten Daten erfolgreich hochgeladen haben, wird der Status des Datasets auf STATE_COMPLETED gesetzt. Das bedeutet, dass das Dataset in Ihrer App verwendet werden kann. Informationen zum Ermitteln des state des Datasets finden Sie unter Dataset abrufen.
Sie können auch neue Daten in das Dataset hochladen, um eine neue Version des Datasets zu erstellen. Verwenden Sie dazu denselben Vorgang wie beim Hochladen von Daten aus Cloud Storage oder beim Hochladen von Daten aus einer Datei, und geben Sie die neuen Daten an, die hochgeladen werden sollen.
Wenn die neuen Daten erfolgreich hochgeladen wurden:
Der Status der neuen Version des Datasets wird auf
STATE_COMPLETEDgesetzt.Die neue Version wird zur „aktiven“ Version und ist die Version, die von Ihrer App verwendet wird.
Wenn beim Hochladen ein Fehler auftritt:
Der Status der neuen Dataset-Version wird auf einen der folgenden Status gesetzt:
STATE_IMPORT_FAILEDSTATE_PROCESSING_FAILEDSTATE_PUBLISHING_FAILEDSTATE_DELETION_FAILED
Die vorherige erfolgreiche Version des Datasets bleibt die „aktive“ Version und wird von Ihrer App verwendet.