Method: forecast.lookup

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

object (LatLng)

Wymagane. Długość i szerokość geograficzna, z których interfejs API wyszukuje dane dotyczące prognozy stężenia pyłków.

days

integer

Wymagane. Liczba, która wskazuje, ile dni objęty prognozą ma zostać wysłane (minimalna wartość 1, wartość maksymalna to 5).

pageSize

integer

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

string

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

string

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

boolean

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 (DayInfo)
    }
  ],
  "nextPageToken": string
}
Pola
regionCode

string

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[]

object (DayInfo)

Wymagane. Ten obiekt zawiera informacje o dziennej prognozie dla każdego żądanego dnia.

nextPageToken

string

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 oznaczają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

number

Szerokość geograficzna w stopniach. Musi mieścić się w zakresie [-90,0, +90,0].

longitude

number

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 (Date)
  },
  "pollenTypeInfo": [
    {
      object (PollenTypeInfo)
    }
  ],
  "plantInfo": [
    {
      object (PlantInfo)
    }
  ]
}
Pola
date

object (Date)

Dzień, w którym podawane są dane dotyczące prognozy stężenia pyłków w strefie czasowej UTC.

pollenTypeInfo[]

object (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[]

object (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:

Zapis JSON
{
  "year": integer,
  "month": integer,
  "day": integer
}
Pola
year

integer

Rok daty. Wartość musi mieścić się w zakresie od 1 do 9999 lub od 0 do określenia daty bez roku.

month

integer

Miesiąc w roku. Wartość musi mieścić się w zakresie od 1 do 12 lub od 0, jeśli chcesz określić rok bez miesiąca i dnia.

day

integer

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 informacje o indeksie typu pyłków i zaleceniach dotyczących zdrowia w przypadku konkretnego rodzaju pyłków.

Zapis JSON
{
  "code": enum (PollenType),
  "displayName": string,
  "indexInfo": {
    object (IndexInfo)
  },
  "healthRecommendations": [
    string
  ],
  "inSeason": boolean
}
Pola
code

enum (PollenType)

Nazwa kodowa rodzaju pyłku. Na przykład: „GRASS”

displayName

string

Zrozumiała dla człowieka nazwa nazwy typu pyłku. Przykład: „trawa”.

indexInfo

object (IndexInfo)

Zawiera dane uniwersalnego indeksu pyłków (UPI) dla tego rodzaju pyłków.

healthRecommendations[]

string

Lista tekstowa wyjaśnień związanych ze statystykami dotyczącymi zdrowia na podstawie bieżących poziomów stężenia pyłków.

inSeason

boolean

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 (Index),
  "displayName": string,
  "category": string,
  "indexDescription": string,
  "color": {
    object (Color)
  },
  "value": integer
}
Pola
code

enum (Index)

Kod indeksu. To pole przedstawia indeks do celów programistycznych z użyciem przypadków typu „snake” zamiast spacji. Przykład: „UPI”.

displayName

string

Zrozumiała dla człowieka nazwa nazwy indeksu. Przykład: „Uniwersalny indeks pyłków”.

category

string

Klasyfikacja tekstu interpretacji wyniku liczbowego indeksu. Indeks składa się z 6 kategorii:

  • 0: „Brak”
  • 1: „Bardzo niski”
  • 2: „Niska”
  • 3. „Umiarkowane”
  • 4: „Wysoki”
  • 5: „Bardzo wysoki
indexDescription

string

Wyjaśnienie tekstowe bieżącego poziomu indeksu.

color

object (Color)

Kolor użyty do przedstawienia wyniku liczbowego w zakresie stężenia pyłków.

value

integer

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

number

Ilość czerwonego koloru jako wartość z przedziału [0, 1].

green

number

Ilość zielonego koloru jako wartość przedziału [0, 1].

blue

number

Ilość niebieskiego koloru jako wartość z przedziału [0, 1].

alpha

number

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:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

Oznacza to, że wartość 1,0 oznacza kolor jednolity, a wartość 0,0 – kolor całkowicie przezroczysty. Wykorzystuje komunikat opakowany, a nie prosty zmiennoprzecinkowy element skalarny, dzięki czemu można odróżnić wartość domyślną od nieskonfigurowanej wartości. Pominięcie tego obiektu koloru powoduje, że jest on renderowany jako jednolity kolor (jak gdyby wartość alfa miała jawnie 1,0).

PlantInfo

Ten obiekt zawiera dzienne informacje o określonej roślinie.

Zapis JSON
{
  "code": enum (Plant),
  "displayName": string,
  "indexInfo": {
    object (IndexInfo)
  },
  "plantDescription": {
    object (PlantDescription)
  },
  "inSeason": boolean
}
Pola
code

enum (Plant)

Nazwa kodowa rośliny. Na przykład: „COTTONWOOD”. Tutaj znajdziesz listę wszystkich dostępnych kodów.

displayName

string

Czytelna dla człowieka wersja nazwy rośliny. Przykład: „Cottonwood”.

indexInfo

object (IndexInfo)

Ten obiekt zawiera dane reprezentujące konkretną wartość indeksu pyłków, kategorię i opis.

plantDescription

object (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

boolean

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 drzewa.
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 (PollenType),
  "family": string,
  "season": string,
  "specialColors": string,
  "specialShapes": string,
  "crossReaction": string,
  "picture": string,
  "pictureCloseup": string
}
Pola
type

enum (PollenType)

Rodzaj pyłków rośliny. Na przykład: „GRASS”. Tutaj znajdziesz listę wszystkich dostępnych kodów.

family

string

Zrozumiała dla człowieka nazwa rodziny roślin. Przykład: „Betulaceae (brzozowate)”.

season

string

Tekstowa lista terminów, w których pyłki są aktywne. Przykład: „Późna zima, wiosna”.

specialColors

string

Opis tekstowy roślin kolory liści, kory, kwiatów i nasion, które ułatwiają identyfikację rośliny.

specialShapes

string

Opis tekstowy roślin kształt liści, kory, kwiatów lub nasion, co pomaga zidentyfikować roślinę.

crossReaction

string

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

string

Link do zdjęcia rośliny.

pictureCloseup

string

Link do zdjęcia rośliny w zbliżeniu.