- Żądanie HTTP
- Parametry zapytania
- Treść żądania
- Treść odpowiedzi
- Zakresy autoryzacji
- LatLng
- DayInfo
- Data
- PollenTypeInfo
- PollenType
- IndexInfo
- Indeks
- kolor,
- PlantInfo
- Roślina
- PlantDescription
- Wypróbuj
Zwraca dane o stężeniu pyłków dziennie z maksymalnie 5 dni w ponad 65 krajach (z dokładnością do 1 km).
Żądanie HTTP
GET https://pollen.googleapis.com/v1/forecast:lookup
Adres URL używa składni transkodowania gRPC.
Parametry zapytania
Parametry | |
---|---|
location |
Wymagane. Długość i szerokość geograficzna, z których interfejs API wyszukuje dane dotyczące prognozy stężenia pyłków. |
days |
Wymagane. Liczba, która wskazuje, ile dni objęty prognozą ma zostać wysłane (minimalna wartość 1, wartość maksymalna to 5). |
pageSize |
Opcjonalnie: Maksymalna liczba dziennych rekordów informacyjnych do zwrócenia na stronę. Wartość domyślna i maksymalna to 5, co oznacza dane z 5 dni. |
pageToken |
Opcjonalnie: Token strony otrzymany z poprzedniego dziennego połączenia. Służy do pobierania następnej strony. Pamiętaj, że gdy podajesz wartość tokena strony, wszystkie pozostałe parametry żądania muszą pasować do poprzedniego wywołania, które dostarczyło token strony. |
languageCode |
Opcjonalnie: Umożliwia klientowi wybór języka odpowiedzi. Jeśli nie można dostarczyć danych dla tego języka, interfejs API używa najbliższego dopasowania. Dozwolone wartości zależą od standardu IETF BCP-47. Wartością domyślną jest „en”. |
plantsDescription |
Opcjonalnie: Zawiera ogólne informacje o roślinach, m.in. szczegóły dotyczące ich sezonowości, specjalne kształty i kolory, informacje o reakcjach krzyżowych oraz zdjęcia roślin. Wartość domyślna to „true”. |
Treść żądania
Treść żądania musi być pusta.
Treść odpowiedzi
W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:
Zapis JSON |
---|
{
"regionCode": string,
"dailyInfo": [
{
object ( |
Pola | |
---|---|
regionCode |
Kod ISO_3166-1 alfa-2 kraju lub regionu odpowiadający lokalizacji podanej w żądaniu. To pole może zostać pominięte w odpowiedzi, jeśli lokalizacja podana w prośbie znajduje się na terytorium, którego dotyczy spór. |
dailyInfo[] |
Wymagane. Ten obiekt zawiera informacje o prognozie dziennej dla każdego żądanego dnia. |
nextPageToken |
Opcjonalnie: Token pobierania następnej strony. |
Zakresy autoryzacji
Wymaga następującego zakresu OAuth:
https://www.googleapis.com/auth/cloud-platform
Więcej informacji znajdziesz w artykule Omówienie protokołu OAuth 2.0.
LatLng
Obiekt reprezentujący parę szerokości i długości geograficznej. Jest ona wyrażona jako para podwójnej precyzji reprezentująca stopnie szerokości i długości geograficznej. O ile nie wskazano inaczej, ten obiekt musi być zgodny ze standardem WGS84. Wartości muszą mieścić się w znormalizowanych zakresach.
Zapis JSON |
---|
{ "latitude": number, "longitude": number } |
Pola | |
---|---|
latitude |
Szerokość geograficzna w stopniach. Musi mieścić się w zakresie [-90,0, +90,0]. |
longitude |
Długość geograficzna w stopniach. Musi mieścić się w zakresie od -180,0 do +180,0]. |
DayInfo
Ten obiekt zawiera informacje o prognozie dziennej dla każdego żądanego dnia.
Zapis JSON |
---|
{ "date": { object ( |
Pola | |
---|---|
date |
Dzień, w którym podawane są dane dotyczące prognozy stężenia pyłków w strefie czasowej UTC. |
pollenTypeInfo[] |
Ta lista będzie zawierać maksymalnie 3 rodzaje pyłków (GRASS, WEED, Drzewo) wpływające na lokalizację wskazaną w prośbie. |
plantInfo[] |
Ta lista będzie zawierać do 15 gatunków pyłków wpływających na lokalizację podaną w prośbie. |
Data
Reprezentuje całą datę lub jej część, na przykład datę urodzin. Pora dnia i strefa czasowa zostały określone w innym miejscu lub są nieistotne. Data zależy od kalendarza gregoriańskiego. Może to być jedna z tych wartości:
- Pełna data z wartościami niezerowymi dotyczącymi roku, miesiąca i dnia.
- Miesiąc i dzień bez roku (np. rocznica).
- Sam rok z zerowym miesiącem i zerowym dniem.
- Rok i miesiąc z zerową datą ważności (np. data ważności karty kredytowej).
Podobne typy:
google.type.TimeOfDay
google.type.DateTime
google.protobuf.Timestamp
Zapis JSON |
---|
{ "year": integer, "month": integer, "day": integer } |
Pola | |
---|---|
year |
Rok daty. Wartość musi mieścić się w zakresie od 1 do 9999 lub od 0 do określenia daty bez roku. |
month |
Miesiąc w roku. Musi mieścić się w zakresie od 1 do 12 lub 0, jeśli chcesz określić rok bez miesiąca i dnia. |
day |
Dzień miesiąca. Wartość musi należeć do zakresu od 1 do 31 i jest ważna dla roku i miesiąca. Wartość 0 pozwala określić pojedynczy rok lub rok i miesiąc, w którym dzień nie jest istotny. |
PollenTypeInfo
Ten obiekt zawiera indeks typu pyłków oraz informacje o zaleceniach dotyczących zdrowia w przypadku konkretnego rodzaju pyłków.
Zapis JSON |
---|
{ "code": enum ( |
Pola | |
---|---|
code |
Nazwa kodowa rodzaju pyłku. Na przykład: „GRASS” |
displayName |
Zrozumiała dla człowieka nazwa nazwy typu pyłku. Przykład: „trawa”. |
indexInfo |
Zawiera dane UPI (uniwersalnego indeksu pyłków) dla tego rodzaju pyłków. |
healthRecommendations[] |
Lista tekstowa wyjaśnień związanych ze statystykami dotyczącymi zdrowia na podstawie bieżącego poziomu stężenia pyłków. |
inSeason |
Wskazanie, czy roślina jest w sezonie. |
PollenType
Kod typu stężenia pyłków
Wartości w polu enum | |
---|---|
POLLEN_TYPE_UNSPECIFIED |
Nieokreślony typ rośliny. |
GRASS |
Typ pyłków traw. |
TREE |
Typ pyłków drzew. |
WEED |
Rodzaj pyłków chwastów. |
IndexInfo
Ten obiekt zawiera dane reprezentujące określoną wartość indeksu pyłków, kategorię i opis.
Zapis JSON |
---|
{ "code": enum ( |
Pola | |
---|---|
code |
Kod indeksu. To pole przedstawia indeks do celów programistycznych z użyciem przypadków typu „snake” zamiast spacji. Przykład: „UPI”. |
displayName |
Zrozumiała dla człowieka nazwa nazwy indeksu. Przykład: „Uniwersalny indeks pyłków”. |
category |
Klasyfikacja tekstu interpretacji wyniku liczbowego indeksu. Indeks składa się z 6 kategorii:
|
indexDescription |
Wyjaśnienie tekstowe bieżącego poziomu indeksu. |
color |
Kolor użyty do przedstawienia wyniku liczbowego w zakresie stężenia pyłków. |
value |
Wynik liczbowy indeksu. Zakres liczbowy należy do zakresu od 0 do 5. |
Indeks
Kod indeksu
Wartości w polu enum | |
---|---|
INDEX_UNSPECIFIED |
Nieokreślony indeks. |
UPI |
Uniwersalny indeks pyłków. |
Kolor
Reprezentuje kolor w przestrzeni kolorów RGBA. Ta reprezentacja ma na celu uproszczenie procesu konwersji i zmiany kolorów w różnych językach, a nie ich kompaktowości. Na przykład pola tej reprezentacji można wprost przekazać do konstruktora java.awt.Color
w Javie; można go również łatwo dostarczyć do metody +colorWithRed:green:blue:alpha
UIColor w systemie iOS. Przy niewielkim nakładzie pracy można go łatwo sformatować pod postacią ciągu CSS rgba()
w JavaScripcie.
Na tej stronie referencyjnej nie ma informacji o bezwzględnej przestrzeni kolorów, która powinna być wykorzystywana do interpretacji wartości RGB, np. sRGB, Adobe RGB, DCI-P3 i BT.2020. Domyślnie aplikacje powinny przyjąć przestrzeń kolorów sRGB.
Gdy należy ustalić równość kolorów, implementacje (o ile nie udokumentowano inaczej) traktują 2 kolory jako równe, jeśli wszystkie ich wartości czerwonego, zielonego, niebieskiego i alfa różnią się o maksymalnie 1e-5
.
Przykład (Java):
import com.google.type.Color;
// ...
public static java.awt.Color fromProto(Color protocolor) {
float alpha = protocolor.hasAlpha()
? protocolor.getAlpha().getValue()
: 1.0;
return new java.awt.Color(
protocolor.getRed(),
protocolor.getGreen(),
protocolor.getBlue(),
alpha);
}
public static Color toProto(java.awt.Color color) {
float red = (float) color.getRed();
float green = (float) color.getGreen();
float blue = (float) color.getBlue();
float denominator = 255.0;
Color.Builder resultBuilder =
Color
.newBuilder()
.setRed(red / denominator)
.setGreen(green / denominator)
.setBlue(blue / denominator);
int alpha = color.getAlpha();
if (alpha != 255) {
result.setAlpha(
FloatValue
.newBuilder()
.setValue(((float) alpha) / denominator)
.build());
}
return resultBuilder.build();
}
// ...
Przykład (iOS / Obj-C):
// ...
static UIColor* fromProto(Color* protocolor) {
float red = [protocolor red];
float green = [protocolor green];
float blue = [protocolor blue];
FloatValue* alpha_wrapper = [protocolor alpha];
float alpha = 1.0;
if (alpha_wrapper != nil) {
alpha = [alpha_wrapper value];
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
static Color* toProto(UIColor* color) {
CGFloat red, green, blue, alpha;
if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
return nil;
}
Color* result = [[Color alloc] init];
[result setRed:red];
[result setGreen:green];
[result setBlue:blue];
if (alpha <= 0.9999) {
[result setAlpha:floatWrapperWithValue(alpha)];
}
[result autorelease];
return result;
}
// ...
Przykład (JavaScript):
// ...
var protoToCssColor = function(rgb_color) {
var redFrac = rgb_color.red || 0.0;
var greenFrac = rgb_color.green || 0.0;
var blueFrac = rgb_color.blue || 0.0;
var red = Math.floor(redFrac * 255);
var green = Math.floor(greenFrac * 255);
var blue = Math.floor(blueFrac * 255);
if (!('alpha' in rgb_color)) {
return rgbToCssColor(red, green, blue);
}
var alphaFrac = rgb_color.alpha.value || 0.0;
var rgbParams = [red, green, blue].join(',');
return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};
var rgbToCssColor = function(red, green, blue) {
var rgbNumber = new Number((red << 16) | (green << 8) | blue);
var hexString = rgbNumber.toString(16);
var missingZeros = 6 - hexString.length;
var resultBuilder = ['#'];
for (var i = 0; i < missingZeros; i++) {
resultBuilder.push('0');
}
resultBuilder.push(hexString);
return resultBuilder.join('');
};
// ...
Zapis JSON |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
Pola | |
---|---|
red |
Ilość czerwonego koloru jako wartość z przedziału [0, 1]. |
green |
Ilość zielonego koloru jako wartość przedziału [0, 1]. |
blue |
Ilość niebieskiego koloru jako wartość z przedziału [0, 1]. |
alpha |
Część tego koloru, która powinna zostać zastosowana do piksela. Oznacza to, że końcowy kolor w pikselach jest określony za pomocą tego równania:
Oznacza to, że wartość 1,0 odpowiada jednolitym kolorowi, a wartość 0,0 – kolorowi całkowicie przezroczystemu. Wykorzystuje komunikat opakowany, a nie prosty zmiennoprzecinkowy element skalarny, dzięki czemu można odróżnić wartość domyślną od nieskonfigurowanej wartości. Jeśli ten obiekt koloru zostanie pominięty, będzie on renderowany jako jednolity kolor (jak gdyby wartość alfa miała jednoznacznie przypisaną wartość 1,0). |
PlantInfo
Ten obiekt zawiera dzienne informacje o określonej roślinie.
Zapis JSON |
---|
{ "code": enum ( |
Pola | |
---|---|
code |
Nazwa kodowa rośliny. Na przykład: „COTTONWOOD”. Tutaj znajdziesz listę wszystkich dostępnych kodów. |
displayName |
Czytelna dla człowieka wersja nazwy rośliny. Przykład: „Cottonwood”. |
indexInfo |
Ten obiekt zawiera dane reprezentujące określoną wartość indeksu pyłków, kategorię i opis. |
plantDescription |
Zawiera ogólne informacje o roślinach, m.in. szczegóły dotyczące ich sezonowości, specjalne kształty i kolory, informacje o reakcjach krzyżowych oraz zdjęcia roślin. |
inSeason |
Wskazywanie roślin, które są w sezonie lub nie. |
Roślina
Zawiera listę dostępnych roślin o różnej dostępności w poszczególnych lokalizacjach.
Wartości w polu enum | |
---|---|
PLANT_UNSPECIFIED |
Nieokreślony kod rośliny. |
ALDER |
Olchę zalicza się do rodzaju pyłków drzew. |
ASH |
Popielaty są klasyfikowane jako rodzaj pyłków drzew. |
BIRCH |
Brzoza jest klasyfikowana jako rodzaj pyłków drzew. |
COTTONWOOD |
Topa jest klasyfikowana jako rodzaj pyłku drzewa. |
ELM |
Wiąz jest klasyfikowany jako rodzaj pyłków drzew. |
MAPLE |
Klon jest klasyfikowany jako rodzaj pyłków drzew. |
OLIVE |
Oliwka jest klasyfikowana jako rodzaj pyłków drzew. |
JUNIPER |
Jałowiec jest klasyfikowany jako rodzaj pyłków drzew. |
OAK |
Dąb jest klasyfikowany jako rodzaj pyłków drzew. |
PINE |
Sosna jest klasyfikowana jako rodzaj pyłków drzew. |
CYPRESS_PINE |
Sosna cyprysowa jest klasyfikowana jako rodzaj pyłków drzew. |
HAZEL |
Leszczyna jest klasyfikowana jako rodzaj pyłku drzew. |
GRAMINALES |
Graminales jest klasyfikowany jako pyłek trawy. |
RAGWEED |
Ambrozja jest klasyfikowana jako rodzaj pyłku chwastego. |
MUGWORT |
Bylina jest klasyfikowana jako rodzaj pyłków chwastych. |
PlantDescription
Zawiera ogólne informacje o roślinach, m.in. szczegóły dotyczące ich sezonowości, specjalne kształty i kolory, informacje o reakcjach krzyżowych oraz zdjęcia roślin.
Zapis JSON |
---|
{
"type": enum ( |
Pola | |
---|---|
type |
Rodzaj pyłków rośliny. Na przykład: „GRASS”. Tutaj znajdziesz listę wszystkich dostępnych kodów. |
family |
Zrozumiała dla człowieka nazwa rodziny roślin. Przykład: „Betulaceae (brzozowate)”. |
season |
Tekstowa lista terminów, w których pyłki są aktywne. Przykład: „Późna zima, wiosna”. |
specialColors |
Opis tekstowy roślin kolory liści, kory, kwiatów i nasion, które ułatwiają identyfikację rośliny. |
specialShapes |
Opis tekstowy roślin kształt liści, kory, kwiatów lub nasion, co pomaga zidentyfikować roślinę. |
crossReaction |
Opis tekstowy przedstawiający rośliny będące reakcją krzyżową w postaci pyłków. Pyłki brzozy, buka, dębu, grabu, olchy, leszczyny i wierzby. |
picture |
Link do zdjęcia rośliny. |
pictureCloseup |
Link do zdjęcia rośliny w zbliżeniu. |