Tworzenie zbioru danych przebiega dwuetapowo:
Wyślij żądanie utworzenia zbioru danych.
Wyślij żądanie przesłania danych do zbioru danych.
Po pierwszym przesłaniu danych możesz przesłać do zbioru danych nowe dane, aby utworzyć nową wersję zbioru danych.
Wymagania wstępne
Podczas tworzenia zbioru danych:
- Wyświetlane nazwy muszą być unikalne w obrębie projektu Google Cloud.
- Wyświetlana nazwa musi mieć mniej niż 64 bajty (ponieważ znaki te są reprezentowane w formacie UTF-8, w niektórych językach każdy znak może być reprezentowany przez wiele bajtów).
- Opisy muszą być mniejsze niż 1000 bajtów.
Podczas przesyłania danych:
- Obsługiwane typy plików to CSV, GeoJSON i KML.
- Maksymalny obsługiwany rozmiar pliku to 350 MB.
- Nazwy kolumn atrybutów nie mogą zaczynać się od ciągu „?_”.
- Trójwymiarowe geometrie nie są obsługiwane. Obejmuje to litera „Z” w formacie WKT, i współrzędną wysokości w formacie GeoJSON.
Sprawdzone metody przygotowywania danych
Jeśli dane źródłowe są złożone lub duże, na przykład gęste punkty, długie linie lub wielokąty (do tej kategorii należą często pliki źródłowe o rozmiarze przekraczającym 50 MB). Rozważ uproszczenie swoich danych. przed przesłaniem w celu osiągnięcia jak najlepszych wyników na mapie wizualnej.
Oto kilka sprawdzonych metod przygotowywania danych:
- Minimalizuj właściwości cech. Zachowaj tylko właściwości cech niezbędne do określenia stylu mapę, na przykład „id”. i „category”. Możesz złączać dodatkowe usługi z cechą w kliencie. aplikacji korzystającej ze stylów opartych na danych na kluczu unikalnego identyfikatora. Na przykład zobacz Wyświetlanie danych w czasie rzeczywistym dzięki stylowi opartemu na danych
- W miarę możliwości używaj prostych typów danych (takich jak liczby całkowite, liczby całkowite), aby zminimalizować rozmiar kafelków i poprawić wydajność mapy.
- Przed przesłaniem pliku uprość złożone geometrie. Możesz to zrobić w wybranego przez siebie narzędzia geoprzestrzennego, takiego jak open source. Mapshaper.org lub BigQuery, ST_Simplify w obrębie złożonych geometrii.
- Przed przesłaniem pliku grupuj bardzo gęste punkty. Możesz to zrobić w wybranego przez siebie narzędzia geoprzestrzennego, takiego jak open source. funkcjach klastra turf.js lub w BigQuery przy użyciu: ST_CLUSTERDBSCAN gęstej geometrii punktowej.
Dodatkowe wskazówki dotyczące sprawdzonych metod dotyczących zbiorów danych znajdziesz tutaj: Wizualizuj dane za pomocą zbiorów danych i BigQuery.
Wymagania GeoJSON
Interfejs Maps Datasets API obsługuje obecne Specyfikacja GeoJSON. Interfejs Maps Datasets API obsługuje również pliki GeoJSON, które zawierają dowolny z tych typów obiektów:
- obiekty geometryczne – Obiekt geometryczny to kształt przestrzenny zdefiniowany jako suma punktów, linii i wielokątów z opcjonalnymi otworami.
- Obiekty funkcji. Obiekt cech obejmuje geometrię oraz dodatkowe pary nazwa/wartość, których znaczenie zależy od danej aplikacji.
- Kolekcje funkcji. Kolekcja cech to zbiór obiektów cech.
Interfejs Maps Datasets API nie obsługuje plików GeoJSON, które zawierają dane w systemie odniesienia współrzędnych (CRS) innej niż WGS84.
Więcej informacji na temat GeoJSON znajdziesz na stronie Zgodność ze standardem RFC 7946.
Wymagania dotyczące formatu KML
Interfejs Maps Datasets API ma następujące wymagania:
- Wszystkie adresy URL muszą być lokalne (lub względne) wobec samego pliku.
- Obsługiwane są geometrie punktów, linii i wielokątów.
- Wszystkie atrybuty danych są uznawane za ciągi znaków.
- Ikony lub
<styleUrl>
zdefiniowane poza plikiem. - Linki sieciowe, takie jak
<NetworkLink>
- warstwy nad powierzchnią, np.
<GroundOverlay>
- geometrie 3D lub wszelkie tagi związane z wysokością, np.
<altitudeMode>
; - Specyfikacje aparatu, np.
<LookAt>
- Style zdefiniowane w pliku KML.
Wymagania dotyczące pliku CSV
W przypadku plików CSV obsługiwane nazwy kolumn są wymienione poniżej w kolejności według priorytetu:
latitude
,longitude
lat
,long
x
,y
wkt
(dobrze znany tekst)address
,city
,state
,zip
address
- Jedna kolumna zawierająca wszystkie dane adresowe, takie jak
1600 Amphitheatre Parkway Mountain View, CA 94043
Na przykład plik zawiera kolumny o nazwach x
, y
i wkt
.
x
i y
mają wyższy priorytet określony na podstawie kolejności
obsługiwane nazwy kolumn z powyższej listy oraz wartości w kolumnach x
i y
są używane, a kolumna wkt
jest ignorowana.
Ponadto:
- Każda nazwa kolumny musi należeć do jednej kolumny. Oznacza to, że kolumna nie może mieć nazwy
xy
, który zawiera dane współrzędnych x i Y. Współrzędne x i y muszą znajdować się w osobnych kolumn. - W nazwach kolumn nie jest rozróżniana wielkość liter.
- Kolejność nazw kolumn nie ma znaczenia. Jeśli na przykład plik CSV zawiera
lat
ilong
, mogą występować w dowolnej kolejności.
Postępowanie w przypadku błędów przesyłania danych
Podczas przesyłania danych do zbioru danych może wystąpić jeden z typowych błędów opisanych w tym artykule: .
Błędy GeoJSON
Typowe błędy GeoJSON:
- Brak pola
type
lubtype
nie jest ciągiem. Przesłany plik Plik danych GeoJSON musi zawierać pole ciągu znaków o nazwietype
jako część każdego Obiekt funkcji i definicja obiektów geometrycznych.
Błędy KML
Typowe błędy w plikach KML:
- Plik danych nie może zawierać żadnych nieobsługiwanych obiektów KML wymienionych powyżej. W przeciwnym razie import danych może się nie powieść.
Błędy pliku CSV
Typowe błędy w pliku CSV:
- W niektórych wierszach brakuje wartości kolumny geometrycznej. Wszystkie wiersze w pliku CSV muszą zawierać
niepuste wartości w kolumnach geometrii. Kolumny geometryczne:
latitude
,longitude
lat
,long
x
,y
wkt
address
,city
,state
,zip
address
- Jedna kolumna zawierająca wszystkie dane adresowe, takie jak
1600 Amphitheatre Parkway Mountain View, CA 94043
- Jeśli
x
iy
to kolumny geometrii, upewnij się, że jednostki są długości i szerokości geograficznej. Niektóre publiczne zbiory danych korzystają z różnych układów współrzędnych w nagłówkachx
iy
. Jeśli zostaną użyte nieprawidłowe jednostki, zbiór danych może zaimportować ale renderowane dane mogą pokazywać punkty zbioru danych w nieoczekiwanych lokalizacjach.
Tworzenie zbioru danych
Utwórz zbiór danych, wysyłając żądanie POST
do
Punkt końcowy datasets:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets
Przekaż treści JSON. do żądania definiującego zbiór danych. Musisz:
Podaj
displayName
zbioru danych. Wartość poladisplayName
musi być być unikalny dla wszystkich zbiorów danych.Ustaw
usage
naUSAGE_DATA_DRIVEN_STYLING
.
Na przykład:
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
Odpowiedź zawiera identyfikator zbioru danych w formacie
projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID
wraz z dodatkowymi informacjami. Używaj identyfikatora zbioru danych przy wysyłaniu żądań do
aktualizować lub modyfikować zbiór danych.
{ "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" }
Przesyłanie danych do zbioru danych
Po utworzeniu zbioru danych prześlij dane z Google Cloud Storage lub z pliku lokalnego do zbioru danych.
Prześlij dane z Cloud Storage
Aby przesłać dane z Cloud Storage do zbioru danych, wysyłaj żądanie POST
do
Punkt końcowy datasets, który również
zawiera identyfikator zbioru danych:
https://mapsplatformdatasets.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
W treści żądania JSON:
Użyj
inputUri
, aby określić ścieżkę pliku do zasobu zawierającego dane w Cloud Storage. Ta ścieżka ma formatgs://GCS_BUCKET/FILE
Użytkownik wysyłający żądanie wymaga obiektu pamięci masowej Wyświetlający lub inną rolę, która obejmuje uprawnienie
storage.objects.get
. Dla: więcej informacji o zarządzaniu dostępem do Cloud Storage znajdziesz w artykule Omówienie kontroli dostępuUżyj właściwości
fileFormat
, aby określić format pliku danych na jeden z tych sposobów:FILE_FORMAT_GEOJSON
(plik GeoJson),FILE_FORMAT_KML
(plik KML) lubFILE_FORMAT_CSV
(plik CSV).
Na przykład:
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
Odpowiedź ma taki format:
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER" }
Prześlij dane z pliku
Aby przesłać dane z pliku, wyślij żądanie HTTP POST
do
Punkt końcowy datasets, który również
zawiera identyfikator zbioru danych:
https://mapsplatformdatasets.googleapis.com/upload/v1/projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID:import
Prośba zawiera:
Nagłówek
Goog-Upload-Protocol
jest ustawiony namultipart
.Właściwość
metadata
określająca ścieżkę do pliku, który określa typ danych do przesłania:FILE_FORMAT_GEOJSON
(plik GeoJSON),FILE_FORMAT_KML
(plik KML) lubFILE_FORMAT_CSV
(plik CSV).Zawartość tego pliku ma następujący format:
{"local_file_source": {"file_format": "FILE_FORMAT_GEOJSON"}}
Właściwość
rawdata
określająca ścieżkę do pliku GeoJSON, KML lub CSV zawierający dane do przesłania.
To żądanie używa opcji curl -F
do określenia ścieżki do obu źródeł
pliki:
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
Odpowiedź ma taki format:
{ "name": "projects/PROJECT_NUMBER_OR_ID/datasets/DATASET_ID@VERSION_NUMBER" }
Prześlij nowe dane do zbioru danych
Gdy utworzysz zbiór danych i prześlesz dane początkowe, stan
zbioru danych jest ustawione na STATE_COMPLETED
. Oznacza to, że zbiór danych jest gotowy do
używanych w Twojej aplikacji. Aby określić state
zbioru danych, zapoznaj się z informacjami o pobieraniu
.
Możesz też przesłać nowe dane do zbioru danych, aby utworzyć nową wersję w gromadzeniu danych. Aby przesłać nowe dane, wykonaj te same czynności co w przypadku przesyłania danych z Cloud Storage lub Prześlij dane z pliku, i wskaż nowe dane do przesłania.
Jeśli uda się przesłać nowe dane:
Stan nowej wersji zbioru danych jest ustawiony na
STATE_COMPLETED
.Nowa wersja stanie się „aktywna”. i jest wersją używaną przez aplikacji.
Jeśli podczas przesyłania wystąpi błąd:
Stan nowej wersji zbioru danych jest ustawiony na jeden z tych stanów:
STATE_IMPORT_FAILED
STATE_PROCESSING_FAILED
STATE_PUBLISHING_FAILED
STATE_DELETION_FAILED
Poprzednia udana wersja zbioru danych pozostaje „aktywna” i jest wersję używaną przez aplikację.