biblioteka Miejsc

Przegląd

Funkcje dostępne w bibliotece miejsc oraz interfejsie Maps JavaScript API umożliwiają Twojej aplikacji wyszukiwanie miejsc (zdefiniowanych w tym interfejsie API jako instytucji, lokalizacji geograficznych lub ważnych ciekawych miejsc) znajdujących się na zdefiniowanym obszarze, np. na granicy mapy lub wokół ustalonego punktu.

Interfejs Places API udostępnia funkcję autouzupełniania, która umożliwia aplikacjom działanie związane z wyszukiwaniem z wyprzedzeniem w polu wyszukiwania Map Google. Gdy użytkownik zacznie wpisywać adres, autouzupełnianie uzupełni resztę. Więcej informacji znajdziesz w dokumentacji autouzupełniania.

Wprowadzenie

Jeśli nie masz doświadczenia z interfejsem Maps JavaScript API lub z JavaScriptem, przed rozpoczęciem zalecamy zapoznanie się z kodem JavaScript i artykułem Uzyskiwanie klucza interfejsu API.

Włącz interfejsy API

Zanim użyjesz biblioteki Places w interfejsie Maps JavaScript API, upewnij się, że interfejs Places API jest włączony w konsoli Google Cloud w tym samym projekcie, który został skonfigurowany na potrzeby Maps JavaScript API.

Aby wyświetlić listę włączonych interfejsów API:

  1. Otwórz Google Cloud Console.
  2. Kliknij przycisk Wybierz projekt, wybierz ten sam projekt, który został skonfigurowany na potrzeby interfejsu Maps JavaScript API, a następnie kliknij Otwórz.
  3. Na liście interfejsów API w panelu znajdź Places API.
  4. Jeśli widzisz na liście interfejs Places API, jest on już włączony. Jeśli interfejsu API nie ma na liście, włącz go:
    1. U góry strony wybierz WŁĄCZ INTERFEJSY API I USŁUGI, aby wyświetlić kartę Biblioteka. Możesz też wybrać opcję Biblioteka w menu po lewej stronie.
    2. Wyszukaj interfejs Places API, a następnie wybierz go z listy wyników.
    3. Wybierz WŁĄCZ. Po zakończeniu procesu Places API pojawi się na liście interfejsów API w panelu.

Wczytuję bibliotekę

Usługa Miejsca to biblioteka samodzielna, niezależna od głównego kodu interfejsu Maps JavaScript API. Aby korzystać z funkcji zawartych w tej bibliotece, musisz ją najpierw wczytać za pomocą parametru libraries w adresie URL wczytywania interfejsu API Map Google:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=places&callback=initMap">
</script>

Więcej informacji znajdziesz w artykule Omówienie bibliotek.

Dodawanie interfejsu Places API do listy ograniczeń interfejsu API klucza interfejsu API

Stosowanie ograniczeń interfejsów API do kluczy ogranicza możliwość użycia klucza interfejsu API do co najmniej 1 interfejsu API lub pakietu SDK. Żądania do interfejsu API lub pakietu SDK powiązane z kluczem interfejsu API będą przetwarzane. Żądania do interfejsu API lub pakietu SDK niepowiązane z kluczem interfejsu API będą nieudane. Aby ograniczyć użycie klucza interfejsu API do użycia w bibliotece Miejsc, Maps JavaScript API:
  1. Otwórz Google Cloud Console.
  2. Kliknij menu projektu i wybierz projekt zawierający klucz interfejsu API, który chcesz zabezpieczyć.
  3. Kliknij przycisk menu i wybierz Google Maps Platform > Dane logowania.
  4. Na stronie Dane logowania kliknij nazwę klucza interfejsu API, który chcesz zabezpieczyć.
  5. Na stronie Ogranicz klucz interfejsu API i zmień jego nazwę ustaw ograniczenia:
    • Ograniczenia interfejsów API
      • Wybierz Ogranicz klucz.
      • Kliknij Wybierz interfejsy API i wybierz zarówno Map JavaScript API, jak i Places API.
        (Jeśli któregoś z interfejsów API nie ma na liście, musisz go enable).
  6. Kliknij ZAPISZ.

Limity i zasady użytkowania

Limity

Biblioteka miejsc współdzieli limit wykorzystania z interfejsem Places API zgodnie z opisem w dokumentacji na temat limitów wykorzystania interfejsu Places API.

Zasady

Korzystanie z biblioteki Miejsc Google i interfejsu Maps JavaScript API musi być zgodne z zasadami dotyczącymi interfejsu Places API.

Wyszukiwania miejsc

Usługa Miejsca umożliwia wyszukiwanie następujących rodzajów wyszukiwań:

Wyświetlane informacje mogą obejmować instytucje – takie jak restauracje, sklepy i biura – oraz wyniki geokodu, które wskazują adresy, obszary polityczne (np. miejscowości i miasta) oraz inne ciekawe miejsca.

Znajdowanie próśb o miejsce

Zapytanie Znajdź miejsce umożliwia wyszukiwanie miejsca według zapytania tekstowego lub numeru telefonu. Istnieją 2 typy próśb o znalezienie miejsca:

Znajdź miejsce na podstawie zapytania

Funkcja Znajdź miejsce z zapytania pobiera tekst i zwraca miejsce. Dane wejściowe mogą być dowolnymi danymi o miejscu, np. nazwą firmy lub adresem. Aby utworzyć funkcję Znajdź miejsce z żądania zapytania, wywołaj metodę findPlaceFromQuery() PlacesService, która przyjmuje te parametry:

  • query (wymagany) – ciąg tekstowy, który ma być wyszukiwany, np. „restauracja” lub „ulica Główna 123”. Musi to być nazwa miejsca, adres lub kategoria instytucji. Inne typy danych wejściowych mogą generować błędy i nie ma gwarancji, że zwróci prawidłowe wyniki. Interfejs Places API będzie zwracać wyniki kandydujące na podstawie tego ciągu i porządkować wyniki na podstawie ich postrzeganej trafności.
  • fields (wymagany) Co najmniej jedno pole określające typy danych miejsc do zwrócenia.
  • locationBias (opcjonalnie) Współrzędne określające obszar wyszukiwania. Może to być jedna z tych wartości:
    • Zbiór współrzędnych szerokości i długości geograficznej określonych jako LatLngLiteral lub obiekt LatLng.
    • Prostokątne granice (dwie pary szerokości/długości lub obiekt LatLngBounds)
    • Promień (w metrach) wyśrodkowany na szerokości/długości geograficznej

Musisz też przekazać metodę wywołania zwrotnego do findPlaceFromQuery(), aby obsługiwać obiekt wyników i odpowiedź google.maps.places.PlacesServiceStatus.

Poniższy przykład przedstawia wywołanie findPlaceFromQuery() z wyszukaniem hasła „Australijskie Muzeum Sztuki Współczesnej” z uwzględnieniem pól name i geometry.

var map;
var service;
var infowindow;

function initMap() {
  var sydney = new google.maps.LatLng(-33.867, 151.195);

  infowindow = new google.maps.InfoWindow();

  map = new google.maps.Map(
      document.getElementById('map'), {center: sydney, zoom: 15});

  var request = {
    query: 'Museum of Contemporary Art Australia',
    fields: ['name', 'geometry'],
  };

  var service = new google.maps.places.PlacesService(map);

  service.findPlaceFromQuery(request, function(results, status) {
    if (status === google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        createMarker(results[i]);
      }
      map.setCenter(results[0].geometry.location);
    }
  });
}
Zobacz przykład

Znajdź miejsce na podstawie numeru telefonu

Funkcja Znajdź miejsce na podstawie numeru telefonu pobiera numer telefonu i zwraca miejsce. Aby utworzyć żądanie Znajdź miejsce na podstawie numeru telefonu, wywołaj metodę findPlaceFromPhoneNumber() obiektu PlacesService, która przyjmuje te parametry:

  • phoneNumber (wymagany) Numer telefonu w formacie E.164.
  • fields (wymagany) Co najmniej jedno pole określające typy danych miejsc do zwrócenia.
  • locationBias (opcjonalnie) Współrzędne określające obszar wyszukiwania. Może to być jedna z tych wartości:
    • Zbiór współrzędnych szerokości i długości geograficznej określonych jako LatLngLiteral lub obiekt LatLng.
    • Prostokątne granice (4 punkty szerokości i długości geograficznej lub obiekt LatLngBounds)
    • Promień (w metrach) wyśrodkowany na szerokości/długości geograficznej

Musisz też przekazać metodę wywołania zwrotnego do findPlaceFromPhoneNumber(), aby obsługiwać obiekt wyników i odpowiedź google.maps.places.PlacesServiceStatus.

Pola (znajdowanie metod związanych z miejscami)

Użyj parametru fields, aby określić tablicę typów danych o miejscu, które mają zostać zwrócone. Przykład: fields: ['formatted_address', 'opening_hours', 'geometry']. Przy określaniu wartości złożonych użyj kropki. Przykład: opening_hours.weekday_text.

Pola odpowiadają wynikom wyszukiwania miejsc i są podzielone na 3 kategorie rozliczeń: Podstawowe, Kontakt oraz Klimat. Płatności za pola podstawowe są naliczane według stawki podstawowej i nie powodują naliczenia dodatkowych opłat. Za pola kontaktu i atmosfery są rozliczane według wyższej stawki. Więcej informacji znajdziesz w cenniku. Atrybucje (html_attributions) są zawsze zwracane przy każdym wywołaniu, niezależnie od tego, czy zażądano pola.

Podstawowy

Kategoria podstawowa zawiera następujące pola:
business_status, formatted_address, geometry, icon,icon_mask_base_uri, icon_background_color, name, permanently_closed (wycofane), photos, place_id, plus_code, types

Nawiązanie kontaktu,

Kategoria Kontakt zawiera następujące pole: opening_hours
(wycofane z Biblioteki miejsc, Maps JavaScript API. użyj prośby o szczegóły miejsca, aby uzyskać wyniki (opening_hours).

Atmosfera

Kategoria Atmosfera zawiera te pola: price_level, rating, user_ratings_total

Metody findPlaceFromQuery() i findPlaceFromPhoneNumber() korzystają z tego samego zestawu pól i mogą zwracać te same pola w odpowiedziach.

Ustaw odchylenie lokalizacji (metody wyszukiwania miejsc)

Parametr locationBias pozwala uzyskać wyniki wyszukiwania dla określonego obszaru. Możesz ustawić locationBias w jeden z tych sposobów:

Wyniki stronnicze wyników dla określonego obszaru:

locationBias: {lat: 37.402105, lng: -122.081974}

Zdefiniuj prostokątny obszar wyszukiwania:

locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}

Możesz też użyć parametru LatLngBounds.

Zdefiniuj promień wyszukiwania (w metrach), który będzie wyśrodkowany na określonym obszarze:

locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}

Prośby o wyszukiwanie w pobliżu

Wyszukiwanie w pobliżu umożliwia wyszukiwanie miejsc na określonym obszarze według słowa kluczowego lub typu. Wyszukiwanie w pobliżu musi zawsze obejmować lokalizację, którą można określić na jeden z dwóch sposobów:

  • LatLngBounds.
  • okrągły obszar zdefiniowany jako kombinacja właściwości location – środek okręgu oznaczony jako obiekt LatLng i promień mierzony w metrach.

Wyszukiwanie miejsc w pobliżu jest inicjowane przez wywołanie metody nearbySearch() funkcji PlacesService, która zwraca tablicę obiektów PlaceResult. Pamiętaj, że metoda nearbySearch() od wersji 3.9 zastępuje metodę search().

service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);

Ta metoda pobiera żądanie z tymi polami:

  • Jeden z tych warunków:
    • bounds, który musi być obiektem google.maps.LatLngBounds określającym prostokątny obszar wyszukiwania, lub
    • location i radius. pierwszy pobiera obiekt google.maps.LatLng, a drugi prostą liczbę całkowitą reprezentującą promień okręgu w metrach. Maksymalny dozwolony promień to 50 000 metrów. Pamiętaj, że gdy rankBy ma wartość DISTANCE, musisz określić location, ale nie możesz podać wartości radius ani bounds.
  • keyword (opcjonalny) – hasło, które ma być dopasowywane do wszystkich dostępnych pól, m.in. z nazwą, typem i adresem, a także opiniami klientów i innymi treściami osób trzecich.
  • minPriceLevel i maxPriceLevel (opcjonalne) – ogranicza wyniki tylko do miejsc w określonym zakresie. Prawidłowe wartości mieszczą się w zakresie od 0 (najbardziej przystępna cena) do 4 (najdroższa) włącznie.
  • Wycofane: name. Odpowiednik: keyword. Wartości w tym polu są łączone z wartościami w polu keyword i przekazywane jako część tego samego ciągu wyszukiwania.
  • openNow (opcjonalny) – wartość logiczna wskazująca, że usługa Miejsca powinna zwracać tylko te miejsca, które były otwarte w momencie wysyłania zapytania. Miejsca, które nie określają godzin otwarcia w bazie danych Miejsc Google, nie będą zwracane, jeśli dołączysz ten parametr do zapytania. Ustawienie wartości false dla właściwości openNow nie spowoduje żadnego efektu.
  • rankBy (opcjonalny) – określa kolejność, w jakiej wyświetlane są wyniki. Możliwe wartości:
    • google.maps.places.RankBy.PROMINENCE (domyślna). Ta opcja umożliwia sortowanie wyników na podstawie ich ważności. W rankingu wyróżnione miejsca w określonym promieniu będą faworyzowane przez pasujące, ale mniej widoczne miejsca w pobliżu. Na widoczność może mieć wpływ pozycja miejsca w indeksie Google, popularność na całym świecie i inne czynniki. Jeśli jest określony google.maps.places.RankBy.PROMINENCE, wymagany jest parametr radius.
    • google.maps.places.RankBy.DISTANCE. Ta opcja powoduje sortowanie wyników w kolejności rosnącej według odległości od określonej wartości location (wymagane). Pamiętaj, że nie możesz określić niestandardowych właściwości bounds ani radius, jeśli podasz RankBy.DISTANCE. Jeśli podasz właściwość RankBy.DISTANCE, wymagana jest co najmniej 1 z tych właściwości: keyword, name lub type.
  • type – ogranicza wyniki do miejsc pasujących do określonego typu. Można określić tylko 1 typ (jeśli podasz więcej niż 1 typ, zostaną zignorowane wszystkie typy po pierwszej pozycji). Zobacz listę obsługiwanych typów.

Musisz też przekazać metodę wywołania zwrotnego do nearbySearch(), aby obsługiwać obiekt wyników i odpowiedź google.maps.places.PlacesServiceStatus.

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: '500',
    type: ['restaurant']
  };

  service = new google.maps.places.PlacesService(map);
  service.nearbySearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      createMarker(results[i]);
    }
  }
}

Zobacz przykład

Żądania wyszukiwania tekstu

Usługa wyszukiwania tekstu w Miejscach Google to usługa internetowa, która zwraca informacje o zestawie miejsc na podstawie ciągu znaków, np. „pizza w Krakowie” lub „sklepy obuwnicze w pobliżu Ottawy”. Usługa w odpowiedzi przesyła listę miejsc pasujących do ciągu tekstowego i ustawione odchylenie do lokalizacji. Odpowiedź będzie zawierać listę miejsc. Możesz wysłać prośbę o szczegóły miejsca, aby uzyskać więcej informacji o dowolnym miejscu w odpowiedzi.

Wyszukiwania tekstu są inicjowane przez wywołanie metody textSearch() w obiekcie PlacesService.

service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);

Ta metoda pobiera żądanie z tymi polami:

  • query (wymagany) – ciąg tekstowy, który ma być wyszukiwany, np. „restauracja” lub „ulica Główna 123”. Musi to być nazwa miejsca, adres lub kategoria instytucji. Inne typy danych wejściowych mogą generować błędy i nie ma gwarancji, że zwróci prawidłowe wyniki. Usługa Miejsca będzie zwracać wyniki kandydujące na podstawie tego ciągu i porządkować wyniki na podstawie ich postrzeganej trafności. Ten parametr staje się opcjonalny, jeśli parametr type jest też używany w żądaniu wyszukiwania.
  • Opcjonalnie:
    • openNow – wartość logiczna wskazująca, że usługa Miejsca powinna zwracać tylko te miejsca, które w momencie wysyłania zapytania są otwarte. Miejsca, które nie określają godzin otwarcia w bazie danych Miejsc Google, nie będą zwracane, jeśli dołączysz ten parametr do zapytania. Ustawienie wartości false dla właściwości openNow nie spowoduje żadnego efektu.
    • minPriceLevel i maxPriceLevel – ogranicza wyniki tylko do miejsc w ramach określonego poziomu cen. Prawidłowe wartości mieszczą się w zakresie od 0 (najbardziej przystępna cena) do 4 (najdroższa) włącznie.
    • Jeden z tych warunków:
      • bounds – obiekt google.maps.LatLngBounds definiujący prostokąt, w którym ma zostać przeprowadzone wyszukiwanie, lub
      • location i radius – możesz uwzględnić wyniki dla określonego kręgu, przekazując parametry location i radius. Spowoduje to, że usługa Miejsca będzie preferować wyświetlanie wyników z tego kręgu. Wyniki spoza zdefiniowanego obszaru mogą być nadal wyświetlane. Do określenia lokalizacji pobierany jest obiekt google.maps.LatLng, a dla promienia podawana jest prosta liczba całkowita, reprezentująca promień okręgu w metrach. Maksymalny dozwolony promień to 50 000 metrów.
    • type – ogranicza wyniki do miejsc pasujących do określonego typu. Można określić tylko jeden typ (jeśli podasz więcej niż 1 typ, zostaną zignorowane wszystkie typy po pierwszej pozycji). Zobacz listę obsługiwanych typów.

Musisz też przekazać metodę wywołania zwrotnego do textSearch(), aby obsługiwać obiekt wyników i odpowiedź google.maps.places.PlacesServiceStatus.

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: '500',
    query: 'restaurant'
  };

  service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      var place = results[i];
      createMarker(results[i]);
    }
  }
}

Wyszukaj odpowiedzi

Kody stanu

Obiekt odpowiedzi PlacesServiceStatus zawiera stan żądania i może zawierać informacje debugowania, które pomogą Ci ustalić, dlaczego nie udało się zrealizować prośby o dodanie miejsca. Możliwe wartości stanu:

  • INVALID_REQUEST: to żądanie było nieprawidłowe.
  • OK: odpowiedź zawiera prawidłowy wynik.
  • OVER_QUERY_LIMIT: strona przekroczyła limit żądań.
  • REQUEST_DENIED: strona nie może korzystać z usługi PlacesService.
  • UNKNOWN_ERROR: nie udało się przetworzyć żądania PlacesService z powodu błędu serwera. Jeśli spróbujesz ponownie, żądanie może się powieść.
  • ZERO_RESULTS: nie znaleziono wyniku dla tego żądania.

Wyniki wyszukiwania miejsc

Funkcje findPlace(), nearbySearch() i textSearch() zwracają tablicę obiektów PlaceResult.

Każdy obiekt PlaceResult może zawierać te właściwości:

  • business_status wskazuje stan operacyjny danego miejsca, jeśli jest nim firma. Może zawierać jedną z tych wartości:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    Jeśli dane nie istnieją, wartość business_status nie jest zwracana.
  • formatted_address to ciąg znaków zawierający zrozumiały dla człowieka adres tego miejsca. Właściwość formatted_address jest zwracana tylko w przypadku wyszukiwania tekstu.

    Często jest to adres pocztowy. Pamiętaj, że ze względu na ograniczenia licencyjne niektóre kraje, np. Wielka Brytania, nie zezwalają na rozpowszechnianie prawdziwych adresów pocztowych.

    Sformatowany adres składa się logicznie z co najmniej jednego komponentu adresu. Na przykład adres „111 8th Avenue, Nowy Jork, NY” składa się z tych komponentów: „111” – numer domu, „8 Aleja” (trasa), „Nowy Jork” – miasto i „NY” (stan w USA).

    Nie analizuj automatycznie sformatowanego adresu. Zamiast tego użyj poszczególnych komponentów adresu, które zawiera odpowiedź interfejsu API oprócz sformatowanego pola adresu.

  • geometry: informacje związane z geometrią miejsca. Obejmuje to m.in.:
    • location podaje szerokość i długość geograficzną miejsca.
    • viewport określa preferowany widoczny obszar na mapie podczas wyświetlania tego miejsca.
  • permanently_closed (wycofano) to flaga wartości logicznej, która wskazuje, czy miejsce zostało zamknięte na stałe czy tymczasowo (wartość true). Nie używaj właściwości permanently_closed. Zamiast tego użyj narzędzia business_status, aby sprawdzić stan operacyjny firm.
  • plus_code (patrz Otwórz kod lokalizacji i kody plus) to zakodowane odniesienie do lokalizacji, pobierane ze współrzędnych geograficznych, które oznacza obszar: 1/8000 stopnia o 1/8000 stopnia (około 14 m x 14 m na równiku) lub mniejszy. Kody Plus Code mogą zastąpić adresy w miejscach, gdzie nie istnieją (gdzie budynki nie są numerowane lub nie mają nazw ulic).

    Kod plus ma format globalny i złożony:

    • global_code to 4-znakowy numer kierunkowy i co najmniej 6-znakowy kod lokalny (849VCWC8+R9).
    • compound_code to co najmniej 6-znakowy kod lokalny z określoną lokalizacją (CWC8+R9, Mountain View, CA, USA). Nie analizuj tych treści automatycznie.
    Zwykle zwracane są zarówno kod globalny, jak i kod złożony. Jeśli jednak wynik znajduje się w odległej lokalizacji (np. na oceanie lub pustyni), może zostać zwrócony tylko kod globalny.
  • html_attributions: tablica atrybucji, którą należy wyświetlać podczas wyświetlania wyników wyszukiwania. Każda pozycja w tablicy zawiera tekst HTML źródła pojedynczej informacji. Uwaga: w tym miejscu widać wszystkie informacje o atrybucji całej odpowiedzi na wyszukiwanie. Dlatego wszystkie obiekty PlaceResult w odpowiedzi zawierają identyczne listy atrybucji.
  • icon zwraca adres URL ikony PNG w kolorze 71 x 71 pikseli.
  • Funkcja icon_mask_base_uri zwraca podstawowy adres URL ikony bez kolorów, pomniejszoną o rozszerzenie .svg lub .png.
  • icon_background_color zwraca domyślny kod szesnastkowy kategorii miejsca.
  • name: nazwa miejsca.
  • opening_hours może zawierać te informacje:
    • open_now to wartość logiczna wskazująca, czy miejsce jest otwarte w danej chwili (wycofano w Bibliotece miejsc lub w interfejsie Maps JavaScript API; użyj parametru utc_offset_minutes).
  • place_id to niepowtarzalny identyfikator tekstowy, który jednoznacznie identyfikuje miejsce. Aby pobrać informacje o miejscu, przekaż ten identyfikator w żądaniu informacji o miejscu. Dowiedz się więcej o tym, jak określić odwołanie do miejsca za pomocą identyfikatora miejsca.
  • rating zawiera ocenę miejsca w skali od 0,0 do 5,0, ustaloną na podstawie zebranych opinii użytkowników.
  • types Tablica typów tego miejsca (np. ["political", "locality"] lub ["restaurant", "lodging"]). Ta tablica może zawierać wiele wartości lub być pusta. Nowe wartości mogą zostać wprowadzone bez wcześniejszego powiadomienia. Zobacz listę obsługiwanych typów.
  • vicinity: uproszczony adres miejsca obejmujący nazwę ulicy, numer ulicy i lokalizację, ale bez nazwy prowincji, stanu, kodu pocztowego ani kraju. Na przykład wartość vicinity biura Google w Sydney w Australii to 5/48 Pirrama Road, Pyrmont.

Uzyskiwanie dostępu do wyników dodatkowych

Domyślnie każde wyszukiwanie miejsca zwraca do 20 wyników na zapytanie. Każde wyszukiwanie może jednak zwrócić maksymalnie 60 wyników podzielonych na 3 strony. Dodatkowe strony są dostępne przez obiekt PlaceSearchPagination. Aby uzyskać dostęp do dodatkowych stron, musisz przechwycić obiekt PlaceSearchPagination za pomocą funkcji wywołania zwrotnego. Obiekt PlaceSearchPagination jest zdefiniowany jako:

  • hasNextPage właściwość logiczna, która wskazuje, czy są dostępne dalsze wyniki. true, gdy pojawi się dodatkowa strona wyników.
  • nextPage() – funkcja, która zwróci następny zestaw wyników. Po przeprowadzeniu wyszukiwania musisz odczekać dwie sekundy, zanim pojawi się następna strona wyników.

Aby zobaczyć następny zestaw wyników, wywołaj polecenie nextPage. Każda strona wyników musi zostać wyświetlona przed wyświetleniem kolejnej strony wyników. Pamiętaj, że każde wyszukiwanie jest liczone jako jedno żądanie w ramach Twoich limitów wykorzystania.

Przykład poniżej pokazuje, jak zmienić funkcję wywołania zwrotnego, aby przechwycić obiekt PlaceSearchPagination i móc wysyłać wiele żądań wyszukiwania.

TypeScript

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">

function initMap(): void {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      center: pyrmont,
      zoom: 17,
      mapId: "8d193001f940fde3",
    } as google.maps.MapOptions
  );

  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage: () => void | false;
  const moreButton = document.getElementById("more") as HTMLButtonElement;

  moreButton.onclick = function () {
    moreButton.disabled = true;

    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (
      results: google.maps.places.PlaceResult[] | null,
      status: google.maps.places.PlacesServiceStatus,
      pagination: google.maps.places.PlaceSearchPagination | null
    ) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;

      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    }
  );
}

function addPlaces(
  places: google.maps.places.PlaceResult[],
  map: google.maps.Map
) {
  const placesList = document.getElementById("places") as HTMLElement;

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon!,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name!,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name!;
      placesList.appendChild(li);

      li.addEventListener("click", () => {
        map.setCenter(place.geometry!.location!);
      });
    }
  }
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">
function initMap() {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(document.getElementById("map"), {
    center: pyrmont,
    zoom: 17,
    mapId: "8d193001f940fde3",
  });
  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage;
  const moreButton = document.getElementById("more");

  moreButton.onclick = function () {
    moreButton.disabled = true;
    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (results, status, pagination) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;
      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    },
  );
}

function addPlaces(places, map) {
  const placesList = document.getElementById("places");

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name;
      placesList.appendChild(li);
      li.addEventListener("click", () => {
        map.setCenter(place.geometry.location);
      });
    }
  }
}

window.initMap = initMap;
Zobacz przykład

Wypróbuj fragment

Szczegóły miejsc

Oprócz udostępniania listy miejsc na danym obszarze usługa Miejsca może też zwracać szczegółowe informacje o konkretnym miejscu. Gdy miejsce zostanie zwrócone w odpowiedzi na wyszukiwanie miejsca, można użyć jego identyfikatora miejsca, aby poprosić o dodatkowe szczegóły, np. pełny adres, numer telefonu, ocenę i opinie użytkowników itp.

Prośby o szczegóły dotyczące miejsca

Żądanie informacji o miejscu jest wysyłane przez wywołanie metody getDetails() usługi.

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

Ta metoda pobiera żądanie zawierające parametr placeId odpowiedniego miejsca oraz pola wskazujące, jakie typy danych Miejsc do zwrócenia należy zwrócić. Dowiedz się więcej o tym, jak odwołać się do miejsca za pomocą identyfikatora miejsca.

Wykorzystuje też metodę wywołania zwrotnego, która musi obsługiwać kod stanu przekazany w odpowiedzi google.maps.places.PlacesServiceStatus, a także obiekt google.maps.places.PlaceResult.

var request = {
  placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4',
  fields: ['name', 'rating', 'formatted_phone_number', 'geometry']
};

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

function callback(place, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    createMarker(place);
  }
}

Zobacz przykład

Pola (szczegóły miejsca)

Parametr fields przyjmuje tablicę ciągów znaków (nazw pól).

Użyj parametru fields, aby określić tablicę typów danych o miejscu, które mają zostać zwrócone. Przykład: fields: ['address_components', 'opening_hours', 'geometry']. Przy określaniu wartości złożonych użyj kropki. Przykład: opening_hours.weekday_text.

Pola odpowiadają wynikom dotyczącym szczegółów miejsca i są podzielone na 3 kategorie rozliczeń: Podstawowe, Kontakt i Atmosfera. Pola podstawowe są rozliczane według stawki podstawowej i nie powodują naliczenia dodatkowych opłat. Pola kontaktowe i atmosfery są rozliczane według wyższej stawki. Więcej informacji znajdziesz w cenniku. Atrybucje (html_attributions) są zawsze zwracane przy każdym wywołaniu, niezależnie od tego, czy zażądano ich.

Podstawowy

Kategoria podstawowa obejmuje te pola:
address_components, adr_address, business_status, formatted_address, geometry, icon, icon_mask_base_uri, icon_background_color,name, permanently_closed (wycofane), photo, place_id, plus_code, type, url, utc_offset w bibliotece/Mapach, , wycofane w biblioteceutc_offset_minutesvicinity

Nawiązanie kontaktu,

Kategoria Kontakt zawiera te pola:
formatted_phone_number, international_phone_number, opening_hours, website

Atmosfera

Kategoria Atmosfera zawiera te pola: price_level, rating, reviews, user_ratings_total

Dowiedz się więcej o polach miejsc. Więcej informacji o naliczaniu opłat za żądania danych miejsc znajdziesz w artykule Korzystanie i płatności.

Odpowiedzi dotyczące szczegółów miejsca

Kody stanu

Obiekt odpowiedzi PlacesServiceStatus zawiera stan żądania i może zawierać informacje debugowania, które mogą pomóc w ustaleniu, dlaczego żądanie informacji o miejscu nie powiodło się. Możliwe wartości stanu:

  • INVALID_REQUEST: to żądanie było nieprawidłowe.
  • OK: odpowiedź zawiera prawidłowy wynik.
  • OVER_QUERY_LIMIT: strona przekroczyła limit żądań.
  • NOT_FOUND Wskazanej lokalizacji nie znaleziono w bazie danych Miejsc.
  • REQUEST_DENIED: strona nie może korzystać z usługi PlacesService.
  • UNKNOWN_ERROR: nie udało się przetworzyć żądania PlacesService z powodu błędu serwera. Jeśli spróbujesz ponownie, żądanie może się powieść.
  • ZERO_RESULTS: nie znaleziono wyniku dla tego żądania.

Wyniki wyszukiwania informacji o miejscu

Udane wywołanie getDetails() zwraca obiekt PlaceResult z tymi właściwościami:

  • address_components: tablica zawierająca osobne komponenty mające zastosowanie do tego adresu.

    Każdy komponent adresu zwykle zawiera te pola:

    • types[] to tablica wskazująca typ komponentu adresu. Zobacz listę obsługiwanych typów.
    • long_name to pełny opis lub nazwa komponentu adresu zwracana przez geokodera.
    • short_name to skrócona nazwa tekstowa komponentu adresu (jeśli jest dostępna). Na przykład składnik adresu dla stanu Alaska może mieć atrybut long_name o nazwie „Alaska” i zasadę short_name o nazwie „AK” z dwuliterowym skrótem pocztowym.

    Zwróć uwagę na te informacje o tablicy address_components[]:

    • Tablica komponentów adresu może zawierać więcej komponentów niż formatted_address.
    • Tablica nie musi zawierać wszystkich jednostek politycznych z adresem (z wyjątkiem tych uwzględnionych w elemencie formatted_address). Aby pobrać wszystkie jednostki polityczne, które zawierają określony adres, użyj odwrotnego geokodowania, przesyłając szerokość i długość geograficzną adresu jako parametr w żądaniu.
    • Nie ma gwarancji, że format odpowiedzi pozostanie taki sam między żądaniami. Liczba address_components różni się w zależności od żądanego adresu i może się z czasem zmienić dla tego samego adresu. Komponent może zmieniać pozycję w tablicy. Typ komponentu może się zmieniać. Konkretnego komponentu może brakować w późniejszej odpowiedzi.
  • business_status wskazuje stan operacyjny danego miejsca, jeśli jest nim firma. Może zawierać jedną z tych wartości:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    Jeśli dane nie istnieją, wartość business_status nie jest zwracana.
  • formatted_address: zrozumiały dla człowieka adres miejsca.

    Często jest to adres pocztowy. Pamiętaj, że ze względu na ograniczenia licencyjne niektóre kraje, np. Wielka Brytania, nie zezwalają na rozpowszechnianie prawdziwych adresów pocztowych.

    Sformatowany adres składa się logicznie z co najmniej jednego komponentu adresu. Na przykład adres „111 8th Avenue, Nowy Jork, NY” składa się z tych komponentów: „111” – numer domu, „8 Aleja” (trasa), „Nowy Jork” – miasto i „NY” (stan w USA).

    Nie analizuj automatycznie sformatowanego adresu. Zamiast tego użyj poszczególnych komponentów adresu, które zawiera odpowiedź interfejsu API oprócz sformatowanego pola adresu.

  • formatted_phone_number: numer telefonu miejsca sformatowany zgodnie z konwencją regionalną.
  • geometry: informacje związane z geometrią miejsca. Obejmuje to m.in.:
    • location podaje szerokość i długość geograficzną miejsca.
    • viewport określa preferowany widoczny obszar na mapie podczas wyświetlania tego miejsca.
  • permanently_closed (wycofano) to flaga wartości logicznej, która wskazuje, czy miejsce zostało zamknięte na stałe czy tymczasowo (wartość true). Nie używaj właściwości permanently_closed. Zamiast tego użyj narzędzia business_status, aby sprawdzić stan operacyjny firm.
  • plus_code (patrz Otwórz kod lokalizacji i kody plus) to zakodowane odniesienie do lokalizacji, pobierane ze współrzędnych geograficznych, które oznacza obszar: 1/8000 stopnia o 1/8000 stopnia (około 14 m x 14 m na równiku) lub mniejszy. Kody Plus Code mogą zastąpić adresy w miejscach, gdzie nie istnieją (gdzie budynki nie są numerowane lub nie mają nazw ulic).

    Kod plus ma format globalny i złożony:

    • global_code to 4-znakowy numer kierunkowy i co najmniej 6-znakowy kod lokalny (849VCWC8+R9).
    • compound_code to co najmniej 6-znakowy kod lokalny z określoną lokalizacją (CWC8+R9, Mountain View, CA, USA). Nie analizuj tych treści automatycznie.
    Zwykle zwracane są zarówno kod globalny, jak i kod złożony. Jeśli jednak wynik znajduje się w odległej lokalizacji (np. na oceanie lub pustyni), może zostać zwrócony tylko kod globalny.
  • html_attributions: tekst źródła, który będzie wyświetlany w przypadku tego wyniku wyszukiwania.
  • icon: URL zasobu obrazu, który może być używany do reprezentowania typu danego miejsca.
  • international_phone_number zawiera numer telefonu do danego miejsca w formacie międzynarodowym. Format międzynarodowy obejmuje kod kraju i jest poprzedzony znakiem plusa (+). Na przykład international_phone_number biura Google w Sydney w Australii to +61 2 9374 4000.
  • name: nazwa miejsca.
  • utc_offset Wycofano w bibliotece Miejsc (Mapach Google JavaScript API). Użyj w zamian utc_offset_minutes.
  • utc_offset_minutes zawiera liczbę minut, o ile bieżąca strefa czasowa tego miejsca jest przesunięta względem czasu UTC. Na przykład w przypadku miejsc w Sydney w Australii w czasie letnim będzie to 660 (+11 godzin od UTC), a w przypadku miejsc w Kalifornii poza czasem letnim będzie to -480 (–8 godzin od UTC).
  • opening_hours zawiera te informacje:
    • open_now (Wycofano w bibliotece Miejsc, Maps JavaScript API; zamiast niego użyj opening_hours.isOpen(). Obejrzyj ten film, aby dowiedzieć się, jak użyć właściwości isOpen z informacjami o miejscu). to wartość logiczna wskazująca, czy miejsce jest otwarte w danej chwili.
    • periods[] to tablica okresów otwarcia obejmująca 7 dni, zaczynając od niedzieli, w kolejności chronologicznej. Każdy okres zawiera:
      • open zawiera parę obiektów daty i godziny opisujących godziny otwarcia miejsca:
        • day liczbę z zakresu 0–6 odpowiadającą dniom tygodnia, począwszy od niedzieli. Na przykład 2 oznacza wtorek.
        • time może zawierać porę dnia w 24-godzinnym formacie ggmm (wartości mieszczą się w zakresie 0000–2359). Dane time będą podawane w strefie czasowej miejsca.
      • close może zawierać parę obiektów daty i godziny opisującej, kiedy miejsce jest zamknięte. Uwaga: jeśli miejsce jest zawsze otwarte, w odpowiedzi nie będzie sekcji close. Aplikacje mogą być reprezentowane jako zawsze otwarty okres jako okres open zawierający day z wartością 0 i time o wartości 0000, bez close.
    • weekday_text to tablica 7 ciągów znaków reprezentujących sformatowane godziny otwarcia w poszczególnych dniach tygodnia. Jeśli w żądaniu dotyczącym szczegółów miejsca został określony parametr language, usługa Miejsca odpowiednio sformatuje i zlokalizuje godziny otwarcia pod kątem tego języka. Kolejność elementów w tej tablicy zależy od parametru language. W przypadku niektórych języków tydzień rozpoczyna się w poniedziałek, a w innych w niedzielę.
  • permanently_closed (wycofano) to flaga wartości logicznej, która wskazuje, czy miejsce zostało zamknięte na stałe czy tymczasowo (wartość true). Nie używaj właściwości permanently_closed. Zamiast tego użyj narzędzia business_status, aby sprawdzić stan operacyjny firm.
  • photos[]: tablica obiektów PlacePhoto. PlacePhoto pozwala uzyskać zdjęcie za pomocą metody getUrl(). Możesz też sprawdzić obiekt pod kątem tych wartości:
    • height: maksymalna wysokość obrazu w pikselach.
    • width: maksymalna szerokość obrazu w pikselach.
    • html_attributions: tekst źródła, który będzie wyświetlany z tym zdjęciem miejsca.
  • place_id: identyfikator tekstowy, który jednoznacznie identyfikuje miejsce i może służyć do pobierania informacji o tym miejscu za pomocą żądania informacji o miejscu. Dowiedz się więcej o tym, jak określić odwołanie do miejsca za pomocą identyfikatora miejsca.
  • rating: ocena miejsca w skali od 0,0 do 5,0, określona na podstawie zbiorczych opinii użytkowników.
  • reviews tablicę z maksymalnie 5 opiniami. Każda weryfikacja składa się z kilku elementów:
    • aspects[] zawiera tablicę obiektów PlaceAspectRating, z których każdy zawiera ocenę jednego atrybutu instytucji. Pierwszy obiekt w tablicy jest uważany za aspekt główny. Każdy element PlaceAspectRating jest zdefiniowany jako:
      • type nazwa ocenianego aspektu. Obsługiwane są te typy: appeal, atmosphere, decor, facilities, food, overall, quality i service.
      • rating ocenę użytkownika za ten konkretny aspekt w skali od 0 do 3.
    • author_name – imię i nazwisko użytkownika, który przesłał opinię. Opinie anonimowe są przypisywane do „Użytkownika Google”. Jeśli ustawiono parametr language, wyrażenie „Użytkownik Google” zwróci zlokalizowany ciąg znaków.
    • author_url adres URL profilu Google+ użytkownika, jeśli jest dostępny.
    • language kod języka IETF wskazujący język użyty w opinii użytkownika. To pole zawiera tylko główny tag języka, a nie tag dodatkowy wskazujący kraj lub region. Na przykład wszystkie opinie w języku angielskim są oznaczone tagiem „en”, a nie „en-AU” czy „en-UK” itd.
    • rating ogólna ocena tego miejsca przez użytkownika. Jest to liczba całkowita z zakresu od 1 do 5.
    • text opinię użytkownika. Przy sprawdzaniu lokalizacji w Miejscach Google opinie tekstowe są uznawane za opcjonalne, dlatego to pole może być puste.
  • types Tablica typów tego miejsca (np. ["political", "locality"] lub ["restaurant", "lodging"]). Ta tablica może zawierać wiele wartości lub być pusta. Nowe wartości mogą zostać wprowadzone bez wcześniejszego powiadomienia. Zobacz listę obsługiwanych typów.
  • url: URL oficjalnej strony w Google dotyczącej tego miejsca. To strona należąca do Google, która zawiera najlepsze dostępne informacje o tym miejscu. Aplikacje muszą zawierać link lub umieścić tę stronę na dowolnym ekranie, który wyświetla użytkownikowi szczegółowe wyniki dotyczące danego miejsca.
  • vicinity: uproszczony adres miejsca obejmujący nazwę ulicy, numer ulicy i lokalizację, ale bez nazwy prowincji, stanu, kodu pocztowego ani kraju. Na przykład wartość vicinity biura Google w Sydney w Australii to 5/48 Pirrama Road, Pyrmont. Właściwość vicinity jest zwracana tylko w przypadku wyszukiwania w pobliżu.
  • website zawiera listę wiarygodnej witryny dotyczącej tego miejsca, np. strony głównej firmy.

Uwaga: w przypadku niektórych lokalizacji oceny wielowymiarowe mogą być niedostępne. Jeśli jest zbyt mało opinii, odpowiedź ze szczegółami będzie zawierać starszą ocenę w skali od 0,0 do 5.0 (jeśli jest dostępna) lub nie zawierać ich wcale.

Używanie komponentu Przegląd miejsca

Uwaga: w tym przykładzie korzystamy z biblioteki open source. Otwórz README, aby uzyskać pomoc i opinie dotyczące biblioteki.

Wypróbuj komponenty internetowe. Użyj komponentu internetowego Przegląd miejsc, aby uzyskać szczegóły miejsca za pomocą wizualizacji.

Obraz przedstawiający odmiany komponentu Przegląd miejsca w rozmiarze XS (małym, małym, średnim, dużym i dużym) w zależności od pola rozmiaru wpisanego przez użytkownika.
Rysunek 1. Informacje o miejscu z 5 różnymi wersjami rozmiaru

odniesienie do miejsca za pomocą identyfikatora miejsca.

Identyfikator miejsca to unikalne odwołanie do miejsca na Mapie Google. Dostępne są identyfikatory miejsc dla większości lokalizacji, w tym firm, punktów orientacyjnych, parków i skrzyżowań.

Aby użyć identyfikatora miejsca w swojej aplikacji, musisz najpierw wyszukać identyfikator, który jest dostępny w PlaceResult w żądaniu wyszukiwania miejsc lub szczegółów. Za pomocą tego identyfikatora miejsca możesz wyszukać szczegóły miejsca.

Identyfikatory miejsc są zwolnione zograniczeń dotyczących buforowania określonych w artykule 3.2.3(b) Warunków korzystania z usługi Google Maps Platform. Wartości identyfikatorów miejsca możesz więc przechowywać do późniejszego użycia. Sprawdzone metody przechowywania identyfikatorów miejsc znajdziesz w omówieniu identyfikatorów miejsc.

var map;

function initialize() {
  // Create a map centered in Pyrmont, Sydney (Australia).
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -33.8666, lng: 151.1958},
    zoom: 15
  });

  // Search for Google's office in Australia.
  var request = {
    location: map.getCenter(),
    radius: '500',
    query: 'Google Sydney'
  };

  var service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

// Checks that the PlacesServiceStatus is OK, and adds a marker
// using the place ID and location from the PlacesService.
function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    var marker = new google.maps.Marker({
      map: map,
      place: {
        placeId: results[0].place_id,
        location: results[0].geometry.location
      }
    });
  }
}

google.maps.event.addDomListener(window, 'load', initialize);

Zdjęcia miejsca

Funkcja zdjęć miejsc umożliwia dodawanie do witryny wysokiej jakości zdjęć. Usługa Zdjęcia zapewnia dostęp do milionów zdjęć przechowywanych w bazie danych Miejsc i Google+ Lokalnie. Gdy uzyskasz informacje o miejscu za pomocą prośby o szczegóły miejsca, zostaną zwrócone odniesienia do zdjęć wraz z odpowiednimi materiałami fotograficznymi. W stosownych przypadkach żądania wyszukiwania w pobliżu i wyszukiwania tekstu zwracają również pojedynczy plik referencyjny zdjęcia dla każdego miejsca. Za pomocą usługi Zdjęcia możesz uzyskać dostęp do zdjęć i zmienić ich rozmiar tak, aby był optymalny w przypadku danej aplikacji.

Tablica obiektów PlacePhoto będzie zwracana jako część obiektu PlaceResult w przypadku każdego żądania getDetails(), textSearch() lub nearbySearch() wysłanego na PlacesService.

Uwaga: liczba zwróconych zdjęć różni się w zależności od prośby.

  • Wyszukiwanie w pobliżu lub wyszukiwanie tekstowe zwróci maksymalnie 1 obiekt PlacePhoto.
  • Żądanie szczegółów zwróci maksymalnie 10 obiektów PlacePhoto.

Możesz zażądać adresu URL powiązanego obrazu, wywołując metodę PlacePhoto.getUrl() i przekazując prawidłowy obiekt PhotoOptions. Obiekt PhotoOptions pozwala określić maksymalną wysokość i szerokość obrazu. Jeśli podasz zarówno wartość maxHeight, jak i maxWidth, usługa fotograficzna zmieni rozmiar obrazu na mniejszy z dwóch rozmiarów, zachowując pierwotny współczynnik proporcji.

Poniższy fragment kodu akceptuje obiekt miejsca i dodaje znacznik do mapy, jeśli zdjęcie istnieje. Domyślny obraz znacznika zostanie zastąpiony małą wersją zdjęcia.

function createPhotoMarker(place) {
  var photos = place.photos;
  if (!photos) {
    return;
  }

  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location,
    title: place.name,
    icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35})
  });
}

Zdjęcia zwracane przez usługę Zdjęcia pochodzą z różnych lokalizacji, m.in. od właścicieli firm i zdjęć przesłanych przez użytkowników. W większości przypadków mogą one zostać użyte bez informacji o ich źródle lub będą zawierać wymagane informacje o ich źródle. Jeśli jednak zwrócony element photo zawiera wartość w polu html_attributions, musisz uwzględnić dodatkową informację w aplikacji zawsze, gdy wyświetlasz obraz.