biblioteka Miejsc

Omówienie

Funkcje w bibliotece miejsc Maps JavaScript API umożliwiają korzystanie z Twojej aplikacji do wyszukiwania miejsc (definiowanych w tym interfejsie API jako instytucje, obszary geograficzne lokalizacje lub ważne miejsca) na określonym obszarze, takich jak granice mapy lub wokół punktu stałego.

Interfejs Places API oferuje funkcję autouzupełniania, aby aplikacje mogły korzystać z funkcji wyszukiwania z wyprzedzeniem, tak jak w przypadku Map Google. polu wyszukiwania. Gdy użytkownik zacznie wpisywać adres, autouzupełnianie do wypełnienia. Więcej informacji: autouzupełnianie dokumentacji.

Pierwsze kroki

Jeśli nie znasz interfejsu Maps JavaScript API lub JavaScript, zalecamy sprawdzanie tych Przed uzyskaniem klucza interfejsu API jak zacząć pracę.

Włącz interfejsy API

Zanim użyjesz biblioteki Miejsca w Maps JavaScript API, upewnij się, w konsoli Google Cloud włączony jest interfejs Places API – projektu skonfigurowanego na potrzeby Maps JavaScript API.

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

  1. Przejdź do Konsola Google Cloud.
  2. Kliknij przycisk Wybierz projekt, a potem wybierz ten sam skonfigurowany projekt. Maps JavaScript API i kliknij Otwórz.
  3. Na liście interfejsów API w panelu znajdź Places API.
  4. Jeśli interfejs Places API znajduje się na liście, jest już włączony. Jeśli interfejs API nie ma na liście, włącz tę opcję:
    1. U góry strony wybierz WŁĄCZ INTERFEJSY API I USŁUGI, aby wyświetlić Biblioteka. Możesz też w menu po lewej stronie wybierz opcję Biblioteka.
    2. Wyszukaj interfejs Places API, a następnie wybierz go z listę wyników.
    3. Kliknij WŁĄCZ. Gdy proces się zakończy, Interfejs Places API pojawi się na liście interfejsów API Panel.

Wczytuję bibliotekę

Usługa Miejsca to autonomiczna biblioteka, odrębna od głównej Kod JavaScript API Map Google. Aby korzystać z zawartych w niej funkcji w tej bibliotece, musisz najpierw wczytać ją za pomocą pakietu 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>

Zobacz Omówienie bibliotek, aby dowiedzieć się więcej.

Dodaj interfejs Places API do listy ograniczeń interfejsu API klucza interfejsu API

Zastosowanie do kluczy ograniczeń interfejsu API ogranicza użycie klucza interfejsu API do jednego lub więcej interfejsów API lub pakietów SDK. Żądania do interfejsu API lub pakietu SDK powiązane z kluczem interfejsu API będą nie powinny być przetwarzane. Żądania do interfejsu API lub pakietu SDK niepowiązane z kluczem interfejsu API będą niepowodzenie. Aby ograniczyć użycie klucza interfejsu API w bibliotece miejsc, interfejs Maps JavaScript API:
  1. Otwórz konsolę Google Cloud.
  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 Credentials (Dane logowania) kliknij nazwę 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 zaznacz Maps JavaScript API oraz Places API.
        Jeśli któregoś z interfejsów API nie ma na liście, musisz go włączyć.
  6. Kliknij ZAPISZ.

Limity i zasady użytkowania

Limity

Biblioteka Miejsc dzieli limit wykorzystania z Places API zgodnie z opisem w dokumentacji limitów wykorzystania dla Places API.

Zasady

Korzystanie z Biblioteki miejsc, Maps JavaScript API musi być zgodne z opisanych zasad dla interfejsu Places API.

Wyszukiwanie miejsc

Dzięki usłudze Miejsca możesz wykonywać następujące rodzaje wyszukiwania:

Zwracane informacje mogą obejmować firmy – takie jak restauracje, sklepy i biura – oraz „kod geograficzny” wyniki, które wskazywać adresy, obszary polityczne, takie jak miejscowości czy miasta, do ciekawych miejsc.

Znajdowanie próśb o miejsce

Żądanie Znajdź miejsce umożliwia wyszukanie miejsca za pomocą zapytania tekstowego lub numeru telefonu. Istnieją 2 typy próśb o funkcję Znajdź miejsce:

Znajdź miejsce z zapytania

Funkcja Znajdź miejsce z zapytania pobiera pole tekstowe i zwraca miejsce. Dane wejściowe mogą mogą to być dowolne dane Miejsc, takie jak nazwa lub adres firmy. Aby utworzyć Znajdź miejsce z zapytania, wywołaj PlacesService findPlaceFromQuery() , która przyjmuje następujące parametry:

  • query (wymagany) ciąg tekstowy, który będzie wyszukiwany, przykład: „restauracja” lub „ulica Główna 123”. Musi to być nazwa miejsca, adresu lub kategorii instytucji. Wszystkie inne typy danych wejściowych mogą generować i nie gwarantują zwrócenia prawidłowych wyników. Interfejs Places API zwróci dopasowania kandydujące na podstawie tego ciągu i porządkuje wyniki na podstawie ich postrzeganej trafności.
  • fields (wymagane) Co najmniej 1 pole określając typy danych Miejsc do zwrócenia.
  • locationBias (opcjonalnie) Współrzędne określające obszar wyszukiwania. Może to być jeden z :
    • Zestaw współrzędnych szerokości/długości geograficznej określonych jako LatLngLiteral lub obiekt LatLng
    • Granice prostokątne (dwie pary szerokości i 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(), do obsługi obiektu wyników i google.maps.places.PlacesServiceStatus .

Poniższy przykład to wywołanie numeru findPlaceFromQuery(). wyszukując hasło „Muzeum Sztuki Współczesnej Australia”, w tym 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 z numeru telefonu pobiera numer telefonu i zwraca miejsce. Do wyślij żądanie Znajdź miejsce z numeru telefonu, wywołaj PlacesService findPlaceFromPhoneNumber() , która przyjmuje następujące parametry:

  • phoneNumber (wymagany) numer telefonu w formacie E.164.
  • fields (wymagane) Co najmniej 1 pole określając typy danych Miejsc do zwrócenia.
  • locationBias (opcjonalnie) Współrzędne określające obszar . Może to być:
    • Zestaw współrzędnych szerokości/długości geograficznej określonych jako LatLngLiteral lub obiekt LatLng
    • Granice prostokątne (cztery punkty 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 findPlaceFromPhoneNumber(), do obsługi obiektu wyników i google.maps.places.PlacesServiceStatus .

Pola (metody znajdowania miejsc)

Użyj parametru fields, aby określić tablicę typów danych miejsc do zwrócenia. Na przykład: fields: ['formatted_address', 'opening_hours', 'geometry']. Przy określaniu wartości złożonych użyj kropki. Na przykład: opening_hours.weekday_text.

Pola odpowiadają wynikom wyszukiwania w miejscu i są podzielone na 3 kategorie rozliczeniowe: Podstawowe, Kontaktowe i Atmosfera. Pola podstawowe to rozliczane według stawki podstawowej i nie powodują naliczania dodatkowych opłat. Kontakt i atmosfera są rozliczane według wyższej stawki. Zobacz arkusz z cennikiem . Atrybucje (html_attributions) są zawsze zwracany przy każdym wywołaniu, niezależnie od tego, czy pole zostało poproszono o dostęp.

Podstawowe

Kategoria Podstawowa zawiera te 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 to pole: opening_hours
(wycofane w bibliotece Miejsc Google Maps JavaScript API. Skorzystaj z prośby dotyczącej informacji o miejscu, aby uzyskać opening_hours wyniku).

Atmosfera

Kategoria Atmosfera zawiera te pola: price_level, rating, user_ratings_total

findPlaceFromQuery() i Każda z findPlaceFromPhoneNumber() metod przyjmuje taki sam zestaw i mogą zwracać te same pola w odpowiednich odpowiedziach.

Ustaw uprzedzenia lokalizacji (metody Znajdź miejsce)

Używaj parametru locationBias, aby dodawać lepsze wyniki wyszukiwania do miejsca w konkretnym obszarze. Możesz ustawić locationBias w tych ustawieniach sposoby:

Odchylenie wyników do konkretnego obszaru:

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

Zdefiniuj prostokątny obszar do wyszukiwania:

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

Możesz też użyć wymiarów LatLngBounds.

Zdefiniuj promień do wyszukania (w metrach) wyśrodkowany na konkretnym obszarze:

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

Żądania wyszukiwania w pobliżu

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

  • LatLngBounds.
  • okrągły obszar zdefiniowany jako kombinacja funkcji location właściwość – określającą środek okręgu jako LatLng – i promień mierzony w metrach.

Wyszukiwanie miejsc w pobliżu jest inicjowane razem z wywołaniem metody nearbySearch() aplikacji PlacesService, która spowoduje zwraca tablicę PlaceResult obiektów. Pamiętaj, że w polu nearbySearch() zastąpi metodę search() w wersji 3.9.

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

Ta metoda przyjmuje żądanie z tymi polami:

  • Jeden z tych elementów:
    • bounds, która musi być Obiekt google.maps.LatLngBounds definiujący prostokątny obszar wyszukiwania. Maksymalna obsługiwana odległość po przekątnej krawędzi obszar wynosi około 100 000 metrów.
    • location i radius; pierwszy pobiera google.maps.LatLng. Ten drugi wymaga prostego liczba całkowita określająca promień okręgu w metrach. Maksymalna wartość dozwolony promień to 50 000 metrów. Pamiętaj, że gdy rankBy ma wartość DISTANCE, musisz podać location, ale nie możesz określić radius lub bounds.
  • keyword (opcjonalny) – hasło do dopasowania. wszystkich dostępnych pól, takich jak nazwa, typ a także opinie klientów i inne treści osób trzecich.
  • minPriceLevel i maxPriceLevel (opcjonalnie) – ogranicza wyniki do miejsc w obrębie w określonym zakresie. Prawidłowy zakres wartości od 0 (najbardziej przystępna cena) do 4 (najdroższe), włącznie.
  • name: wycofane. Odpowiednik: keyword. Wartości w tym polu są połączone z wartościami w polu keyword i przekazywane w ramach tego samego ciągu wyszukiwania.
  • openNow (opcjonalny) – wartość logiczna, co oznacza, że usługa Miejsca powinna zwracać tylko te miejsca, są otwarte w momencie wysyłania zapytania. Miejsca, w których nie występuje określenia godzin otwarcia w bazie danych Miejsc Google nie będą zwracanych, jeśli uwzględnisz ten parametr w zapytaniu. Ustawienie openNow do false nie ma efektu.
  • rankBy (opcjonalny) – określa kolejność w które wyniki pojawią się w wynikach wyszukiwania. Możliwe wartości to:
    • google.maps.places.RankBy.PROMINENCE (domyślna). Ten sortuje wyniki według ich ważności. Ranking będzie faworyzowane miejsca w określonym promieniu nad pobliskimi pasujące, ale mniej widoczne miejsca. Widoczność może być pozycję danego miejsca w indeksie Google, popularność na całym świecie, i innych czynników. Kiedy google.maps.places.RankBy.PROMINENCE to parametr radius jest wymagany.
    • google.maps.places.RankBy.DISTANCE Ta opcja sortuje wyniki w kolejności rosnącej według odległości od określonej wartości location (wymagane). Pamiętaj, że nie możesz podać niestandardowy bounds lub radius, jeśli wpisz RankBy.DISTANCE. Jeśli określisz RankBy.DISTANCE, co najmniej jeden z keyword, name lub type to
  • type – ogranicza wyniki do miejsc pasujących do określonego typu. Można wybrać tylko jeden typ (jeśli podano więcej niż jeden typ, wszystkie typy po pierwszym są ignorowane). Zobacz listę .

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

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 tekstowego

Usługa wyszukiwania tekstu Miejsc Google to usługa sieciowa, która zwraca informacji o zestawie miejsc na podstawie ciągu znaków – np. „pizza w Warszawie” lub „sklepy obuwnicze w pobliżu Ottawy”. W odpowiedzi usługa wysyła komunikat listę miejsc pasujących do ciągu tekstowego i wszelkie odchylenia lokalizacji, które ma została ustawiona. Odpowiedź na wyszukiwanie będzie zawierać listę miejsc. Możesz wysłać Prośba o podanie szczegółów miejsca na temat dowolnego miejsca .

Wyszukiwania tekstowe są inicjowane przez wywołanie funkcji Metoda textSearch() za pomocą PlacesService.

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

Ta metoda przyjmuje żądanie z tymi polami:

  • query (wymagany) – ciąg tekstowy, dla którego zostanie wyszukiwanie, na przykład: „restauracja” lub „ulica Główna 123”. To musi być miejsce nazwę, adres lub kategorię instytucji. Wszystkie inne typy danych wejściowych mogą generują błędy i nie ma gwarancji, że wyświetlą poprawne wyniki. Miejsca usługa zwróci dopasowania kandydatów na podstawie tego ciągu i porządkuje na podstawie ich postrzeganej trafności. Ten parametr staje się opcjonalny jeśli w żądaniu wyszukiwania jest też używany parametr type.
  • Opcjonalnie:
    • openNow – wartość logiczna, co oznacza, że usługa Miejsca powinna zwracać tylko te miejsca, są otwarte w momencie wysyłania zapytania. Miejsca, w których nie występuje określenia godzin otwarcia w bazie danych Miejsc Google nie będą zwracanych, jeśli uwzględnisz ten parametr w zapytaniu. Ustawienie openNow do false nie ma efektu.
    • minPriceLevel i maxPriceLevel – ogranicza wyniki tylko do miejsc w obrębie na określonym poziomie cen. Prawidłowe wartości należą do zakresu od 0 (najbardziej przystępna cena) do 4 (najdroższe), włącznie.
    • Jeden z tych elementów:
      • bounds, która musi być Obiekt google.maps.LatLngBounds definiujący prostokątny obszar wyszukiwania. Maksymalna obsługiwana odległość po przekątnej krawędzi obszar wynosi około 100 000 metrów.
      • location i radius – możesz powoduje odchylenie wyników do określonego okręgu, przekazując w ten sposób sygnał location i radius. Dzięki temu instruować, że usługa Miejsca ma preferować wyświetlanie wyników kręgu znajomych. Wyniki spoza zdefiniowanego obszaru mogą być nadal wyświetlane. Lokalizacja przyjmuje obiekt google.maps.LatLng, promień ma prostą liczbę całkowitą, która reprezentuje promień okręgu w metrach. Maksymalny dozwolony promień to 50 000 metrów.
    • type – ogranicza wyniki do miejsc pasujących do zapytania określonego typu. Można podać tylko jeden typ (jeśli jest ich więcej niż jeden) typ jest ignorowany, wszystkie typy po pierwszym wpisie są ignorowane). Zobacz listę obsługiwanych typów.

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

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]);
    }
  }
}

Odpowiedzi na wyszukiwanie

Kody stanu

Obiekt odpowiedzi PlacesServiceStatus zawiera stan może zawierać informacje na potrzeby debugowania, które pomogą Ci w odnalezieniu dlaczego prośba o miejsce została odrzucona. Możliwe wartości stanu:

  • INVALID_REQUEST: to żądanie było nieprawidłowe.
  • OK: odpowiedź zawiera prawidłowy wynik.
  • OVER_QUERY_LIMIT: strona internetowa spełniła swoje żądanie limit miejsca na dane.
  • REQUEST_DENIED: nie możesz używać na stronie internetowej parametru PlacesService.
  • UNKNOWN_ERROR: nie udało się zrealizować żądania PlacesService przetworzono z powodu błędu serwera. Jeśli spróbujesz ponownie, żądanie może się udać.
  • ZERO_RESULTS: nie znaleziono wyników dla tego żądania.

Wyniki wyszukiwania miejsc

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

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

  • business_status wskazuje wartość operacyjną stanu firmy, jeśli jest to firma. Może on zawierać jeden z tych elementów: następujące 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 adresu tego miejsca. Właściwość formatted_address to tylko dla wyszukiwania tekstowego.

    Adres ten jest często odpowiednikiem adresu pocztowego. Pamiętaj, że niektóre takich jak Wielka Brytania, nie zezwalają na dystrybucję prawdziwego adresów pocztowych ze względu na ograniczenia licencyjne.

    Sformatowany adres składa się logicznie z jednego lub wielu adresów . Na przykład adres „ul. Polna 13, Warszawa” składa się z następujących komponentów: „111” (numer domu), „Ósma Aleja” (trasa), „Nowy Jork” (miasto) i „NY” (stan w USA).

    Nie analizuj sformatowanego adresu automatycznie. Zamiast tego użyj poszczególnych składników adresu, które zawiera odpowiedź interfejsu API do sformatowanego pola adresu.

  • geometry: informacje o geometrii miejsca. Ten zawiera:
    • location podaje szerokość i długość geograficzną miejsce.
    • viewport określa preferowany obszar na mapie, gdy podczas oglądania tego miejsca.
  • permanently_closed (wycofane) to flaga wartości logicznej, która wskazuje, czy miejsce zostało zamknięte albo trwale lub tymczasowo (wartość true). Nie używać permanently_closed Zamiast niego użyj funkcji business_status. aby poznać stan operacyjny firmy.
  • plus_code (zobacz Otwórz kod lokalizacji i kody plus) to zakodowane odniesienie do lokalizacji pobierane ze współrzędnych geograficznych, przedstawia obszar: 1/8000 stopnia na 1/8000 stopnia (około 14 x 14 m na równiku) lub mniejsze. Kody Plus Code mogą zastąpić: adresów w miejscach, gdzie nie istnieją (gdzie budynki nie są numerowane lub ulice nie mają nazwy).

    Kod plus ma format kodu globalnego i kodu złożonego:

    • 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 konkretną lokalizacją (CWC8+R9, Mountain View, Kalifornia, USA). Nie analizuj takich treści programowo.
    Zwykle zwracany jest zarówno kod globalny, jak i kod złożony. Jeśli jednak wynik to w przypadku odległej lokalizacji (na przykład oceanu lub pustyni) zwracany może być tylko kod globalny.
  • html_attributions: tablica atrybucji, którą warto wziąć pod uwagę które pojawiają się podczas wyświetlania wyników wyszukiwania. Każdy wpis w tablicy zawiera tekstu HTML dla pojedynczej atrybucji. Uwaga: to jest agregacja wszystkich atrybucji dla całej odpowiedzi na wyszukiwanie. Wszystkie Obiekty PlaceResult w odpowiedzi zawierają więc jednakowymi listami atrybucji.
  • icon zwraca adres URL ikony PNG o wymiarach 71 x 71 pikseli.
  • icon_mask_base_uri zwraca podstawowy adres URL dla reklamy bez koloru. bez rozszerzenia .svg lub .png.
  • icon_background_color zwraca domyślny szesnastkowy kod koloru dla: kategorię miejsca.
  • name: nazwa miejsca.
  • opening_hours może zawierać te informacje:
    • open_now to wartość logiczna wskazująca, czy miejsce otwarte w bieżącym czasie (wycofane w bibliotece Miejsc Google Maps JavaScript API należy użyć polecenia utc_offset_minutes ).
  • place_id to identyfikator tekstowy, który jednoznacznie identyfikuje miejsce. Aby pobrać informacje o tym miejscu, przekaż ten identyfikator w Szczegóły miejsca . Więcej informacji o tworzeniu odniesień do miejsca wraz z identyfikatorem miejsca.
  • rating zawiera ocenę miejsca od 0.0 do 5.0, na podstawie na zbiorczych opiniach użytkowników.
  • types Tablica typów tego miejsca (np. ["political", "locality"] lub ["restaurant", "lodging"]). Ta tablica może zawierać wiele wartości lub puste. Nowe wartości można wprowadzać bez wcześniejszego powiadomienia. Zobacz listę obsługiwanych typów.
  • vicinity: uproszczony adres miejsca, w tym adres nazwę ulicy, numer i miejscowość, ale nie prowincja/stan, kod pocztowy lub kraj. Na przykład Google's Sydney, Firma w Australii ma wartość vicinity wynoszącą 5/48 Pirrama Road, Pyrmont.

Uzyskiwanie dostępu do dodatkowych wyników

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

  • hasNextPage właściwość logiczna wskazująca, czy dalej wyniki są dostępne. true, gdy wystąpi dodatkowy stronie wyników.
  • nextPage() funkcję, która zwróci następny zbiór wyników. Po przeprowadzeniu wyszukiwania musisz odczekać dwa sekund przed udostępnieniem następnej strony wyników.

Aby wyświetlić następny zestaw wyników, wywołaj nextPage. Każda strona wyników musi zostać wyświetlona przed wyświetleniem następnej strony wyników. Pamiętaj, że każde wyszukiwanie jest liczone jako jedno żądanie względem limity wykorzystania.

Poniższy przykład pokazuje, jak zmienić funkcję wywołania zwrotnego na przechwycić obiekt PlaceSearchPagination, aby móc wysł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

Zobacz próbkę

Szczegóły miejsc

Oprócz udostępniania listy miejsc w obszarze funkcja Miejsca Usługa może również zwrócić szczegółowe informacje o konkretnym miejscu. Jednorazowo w odpowiedzi na wyszukiwanie miejsca pojawiło się identyfikator miejsca może posłużyć do uzyskania dodatkowych informacji. o tym miejscu, np. jego pełny adres, numer telefonu, ocenę użytkowników i opinii itd.

Prośby o szczegóły miejsc

Aby przesłać prośbę o podanie informacji o miejscu, należy skontaktować się z Metoda getDetails().

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

Ta metoda przyjmuje żądanie, które zawiera identyfikator żądanego miejsca placeId oraz pola wskazujące typy danych w Miejscach zwrócić. Więcej informacji o jak oznaczyć miejsce za pomocą identyfikatora miejsca.

Przyjmuje również metodę wywołania zwrotnego, która obsługuje przekazany kod stanu w odpowiedzi google.maps.places.PlacesServiceStatus oraz jako 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 miejsc do zwrócenia. Na przykład: fields: ['address_components', 'opening_hours', 'geometry']. Przy określaniu wartości złożonych użyj kropki. Na przykład: opening_hours.weekday_text.

Pola odpowiadają szczegółom miejsca wyników. Są podzielone na trzy kategorie płatności: Podstawowe, Kontaktowe Klimat. Pola podstawowe są rozliczane według stawki podstawowej i nie wiążą się z dodatkowymi kosztami opłaty. Za pola Kontakt i Atmosfera opłaty są naliczane według wyższej stawki. Zobacz arkusz z cennikiem . Atrybucje (html_attributions) są zawsze zwracany przy każdym połączeniu, niezależnie od tego, czy zostało ono zażądane.

Podstawowe

Kategoria Podstawowa zawiera 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 (wycofany) w bibliotece Miejsc, Maps JavaScript API) utc_offset_minutes, vicinity

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

Więcej informacji o pola miejsc. Więcej informacje na temat sposobu rozliczania żądań danych o miejscach, zobacz Korzystanie i rozliczenia.

Odpowiedzi na temat szczegółów miejsca

Kody stanu

Obiekt odpowiedzi PlacesServiceStatus zawiera stan może zawierać informacje na potrzeby debugowania, które pomogą Ci w odnalezieniu dlaczego prośba o informacje dotyczące miejsca się nie powiodła. Możliwe wartości stanu:

  • INVALID_REQUEST: to żądanie było nieprawidłowe.
  • OK: odpowiedź zawiera prawidłowy wynik.
  • OVER_QUERY_LIMIT: strona internetowa spełniła swoje żądanie limit miejsca na dane.
  • NOT_FOUND Wspomniana lokalizacja nie została znalezione w bazie danych Miejsc.
  • REQUEST_DENIED: nie możesz używać na stronie internetowej parametru PlacesService.
  • UNKNOWN_ERROR: nie udało się zrealizować żądania PlacesService przetworzono z powodu błędu serwera. Jeśli spróbujesz ponownie, żądanie może się udać.
  • ZERO_RESULTS: nie znaleziono wyników dla tego żądania.

Wyniki dotyczące szczegółów miejsca

Udane wywołanie funkcji getDetails() zwraca błąd PlaceResult o tych właściwościach:

  • address_components: tablica zawierająca oddzielne dotyczące tego adresu.

    Każdy komponent adresu zawiera zwykle te pola:

    • types[] to tablica wskazująca typ adresu. Zobacz listę obsługiwanych typów.
    • long_name to pełny opis lub nazwa elementu komponentem adresowym zwracanym przez Geocoder.
    • short_name to skrócona nazwa tekstowa adresu jeśli jest dostępny. Na przykład składnik adresu dla stanu obszaru Alaski może mieć long_name o wartości „Alaska” i short_name pozycji „Akademia” za pomocą dwuliterowego skrótu pocztowego.

    Zwróć uwagę na te informacje na temat: address_components[] tablica:

    • Tablica komponentów adresu może zawierać więcej komponentów niż formatted_address
    • Tablica nie musi obejmować wszystkich podmiotów politycznych, które zawierają adres, oprócz tych zawartych w tagu formatted_address Aby pobrać wszystkie jednostki polityczne zawierających konkretny adres, należy zastosować odwrotne geokodowanie, przesyłając szerokość i długość geograficzną adresu jako parametr żądania.
    • Nie ma gwarancji, że format odpowiedzi będzie taki sam żądań. W szczególności chodzi o liczbę address_components zmienia się w zależności od żądanego adresu i może się zmieniać pod tym samym adresem. Komponent może zmienić pozycję w tablicy. Typ komponentu może się zmienić. Konkretnym komponentem może być których brakuje w późniejszej odpowiedzi.
  • business_status wskazuje wartość operacyjną stanu firmy, jeśli jest to firma. Może on zawierać jeden z tych elementów: następujące 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 tego miejsca.

    Adres ten jest często odpowiednikiem adresu pocztowego. Pamiętaj, że niektóre takich jak Wielka Brytania, nie zezwalają na dystrybucję prawdziwego adresów pocztowych ze względu na ograniczenia licencyjne.

    Sformatowany adres składa się logicznie z jednego lub wielu adresów . Na przykład adres „ul. Polna 13, Warszawa” składa się z następujących komponentów: „111” (numer domu), „Ósma Aleja” (trasa), „Nowy Jork” (miasto) i „NY” (stan w USA).

    Nie analizuj sformatowanego adresu automatycznie. Zamiast tego użyj poszczególnych składników adresu, które zawiera odpowiedź interfejsu API do sformatowanego pola adresu.

  • formatted_phone_number: sformatowany numer telefonu miejsca zgodnie z zgodnie z regionalną konwencją liczbową.
  • geometry: informacje o geometrii miejsca. Ten zawiera:
    • location podaje szerokość i długość geograficzną miejsce.
    • viewport określa preferowany obszar na mapie, gdy podczas oglądania tego miejsca.
  • permanently_closed (wycofane) to flaga wartości logicznej, która wskazuje, czy miejsce zostało zamknięte albo trwale lub tymczasowo (wartość true). Nie używać permanently_closed Zamiast niego użyj funkcji business_status. aby poznać stan operacyjny firmy.
  • plus_code (zobacz Otwórz kod lokalizacji i kody plus) to zakodowane odniesienie do lokalizacji pobierane ze współrzędnych geograficznych, przedstawia obszar: 1/8000 stopnia na 1/8000 stopnia (około 14 x 14 m na równiku) lub mniejsze. Kody Plus Code mogą zastąpić: adresów w miejscach, gdzie nie istnieją (gdzie budynki nie są numerowane lub ulice nie mają nazwy).

    Kod plus ma format kodu globalnego i kodu złożonego:

    • 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 konkretną lokalizacją (CWC8+R9, Mountain View, Kalifornia, USA). Nie analizuj takich treści programowo.
    Zwykle zwracany jest zarówno kod globalny, jak i kod złożony. Jeśli jednak wynik to w przypadku odległej lokalizacji (na przykład oceanu lub pustyni) zwracany może być tylko kod globalny.
  • html_attributions: tekst atrybucji, który będzie wyświetlany dla: wynik tego miejsca.
  • icon: adres URL zasobu obrazu, którego można użyć do wskazują typ tego miejsca.
  • international_phone_number zawiera numer telefonu tego miejsca w formacie międzynarodowym. Format międzynarodowy obejmuje kraj i jest poprzedzony znakiem plusa (+). Na przykład parametr international_phone_number dla linii Google w Sydney w Australii biuro znajduje się +61 2 9374 4000.
  • name: nazwa miejsca.
  • utc_offset Wycofano w bibliotece miejsc, Maps JavaScript API, użyj utc_offset_minutes.
  • utc_offset_minutes zawiera liczbę minut w tej kolumnie bieżąca strefa czasowa miejsca jest przesunięta względem UTC. Na przykład w przypadku miejsc w Sydney, Australia w czasie letnim: będzie to 660 (+11 godzin) od czasu UTC), a w przypadku miejsc w Kalifornii poza czasem letnim wyniesie -480 (-8 godzin w stosunku do czasu UTC).
  • opening_hours zawiera te informacje:
    • open_now (wycofano) w Bibliotece miejsc – Maps JavaScript API; należy użyć funkcji opening_hours.isOpen(). Aby dowiedzieć się, jak używać tej funkcji, obejrzyj ten film. isOpen ze szczegółami miejsca). to wartość logiczna wskazująca, czy miejsce jest otwarte w danej chwili obecnie się znajdujesz.
    • periods[] to tablica okresów otwarcia obejmująca siedem okresów dni, od niedzieli, w kolejności chronologicznej. W każdym okresie zawiera:
      • open zawiera parę obiektów daty i godziny opis otwarcia miejsca:
        • day cyfrę z zakresu 0–6 odpowiadającą dniom dnia tygodnia, zaczynając od niedzieli. Na przykład 2 oznacza Wtorek.
        • time może zawierać porę dnia w formacie 24-godzinnym ggmm (wartości należą do zakresu 0000–2359). time będzie raportowane zgodnie ze strefą czasową danego miejsca.
      • close może zawierać parę obiektów daty i godziny z informacją o zamknięciu miejsca. Uwaga: jeśli miejsce jest zawsze otwarta, sekcja close będzie których nie ma w odpowiedzi. Aplikacje mogą korzystać z trybu „Zawsze otwarte” jest reprezentowany jako okres open zawierający day o wartości 0 i time o wartości 0000, i nie close.
    • weekday_text to tablica 7 ciągów reprezentujących ze sformatowanymi godzinami otwarcia dla poszczególnych dni tygodnia. Jeśli Parametr language został określony w szczegółach miejsca , zespół usługi Miejsca sformatuje i zlokalizuje godziny otwarcia odpowiednio do tego języka. Kolejność elementów w zależy od parametru language. Niektóre języki zaczynają tydzień w poniedziałek, a inne w niedzielę.
  • permanently_closed (wycofane) to flaga wartości logicznej, która wskazuje, czy miejsce zostało zamknięte albo trwale lub tymczasowo (wartość true). Nie używać permanently_closed Zamiast niego użyj funkcji business_status. aby poznać stan operacyjny firmy.
  • photos[]: tablica PlacePhoto obiektów. PlacePhoto można użyć, aby uzyskać zdjęcie z getUrl() lub możesz sprawdzić obiekt pod kątem następujące wartości:
    • height: maksymalna wysokość obrazu w pikselach.
    • width: maksymalna szerokość obrazu w pikselach.
    • html_attributions: tekst informacji o autorze do wyświetlenia ze zdjęciem tego miejsca.
  • place_id: identyfikator tekstowy, który jednoznacznie identyfikuje może służyć do wyszukiwania informacji o danym miejscu za pomocą Szczegóły miejsca . Więcej informacji o tworzeniu odniesień do miejsca wraz z identyfikatorem miejsca.
  • rating: ocena miejsca, od 0.0 do 5.0, na podstawie zagregowane opinie użytkowników.
  • reviews tablicę z maksymalnie 5 opiniami. Każda opinia składa się z kilku elementów:
    • aspects[] zawiera tablicę PlaceAspectRating obiektów, z których każdy zawiera oceny pojedynczego atrybutu obiektu. Pierwszy obiekt jest uważany za aspekt podstawowy. Każdy PlaceAspectRating jest zdefiniowany jako:
      • type nazwa ocenianego aspektu. Obsługiwane są te typy: appeal, atmosphere, decor facilities, food, overall, quality i service.
      • rating ocena użytkownika dla tego konkretnego elementu od 0 do 3.
    • author_name nazwa użytkownika, który przesłał weryfikacji. Opinie anonimowe są przypisywane do „Użytkownika Google”. Jeśli język, wyrażenie „Użytkownik Google” będzie zwraca zlokalizowany ciąg znaków.
    • author_url adres URL profilu Google+ użytkownika, jeśli i dostępności informacji.
    • language kod języka IETF wskazujący język wykorzystane w opinii użytkownika. To pole zawiera tag języka głównego a nie drugorzędny tag wskazujący kraj lub region. Dla: Na przykład wszystkie opinie w języku angielskim są oznaczone tagiem „en”, a nie „en-AU”. lub „en-UK” i tak dalej.
    • rating ogólna ocena tego miejsca użytkownika. Ten jest liczbą całkowitą z zakresu od 1 do 5.
    • text opinia użytkownika. Podczas sprawdzania lokalizacji w Miejscach Google, opinie tekstowe są uważane 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 puste. Nowe wartości można wprowadzać bez wcześniejszego powiadomienia. Zobacz listę obsługiwanych typów.
  • url: URL oficjalnej strony Google miejsce. To jest strona należąca do Google, która zawiera najlepsze dostępnych informacji o danym miejscu. Aplikacje muszą zawierać link do strony lub osadzić ją tę stronę na dowolnym ekranie, która zawiera szczegółowe wyniki wyszukiwania użytkownika.
  • vicinity: uproszczony adres miejsca, w tym adres nazwę ulicy, numer i miejscowość, ale nie prowincja/stan, kod pocztowy lub kraj. Na przykład Google's Sydney, Firma w Australii ma wartość vicinity wynoszącą 5/48 Pirrama Road, Pyrmont. Właściwość vicinity jest zwracana tylko dla wyszukiwania w pobliżu.
  • website zawiera adres wiarygodnej strony danego miejsca, na przykład jako firma stronie głównej.

Uwaga: wielowymiarowe oceny mogą być niedostępne w przypadku we wszystkich lokalizacjach. Jeśli będzie za mało opinii, odpowiedź ze szczegółami będzie Mogą zawierać starszą ocenę w skali od 0,0 do 5.0 (jeśli jest dostępna) albo nie jakąkolwiek ocenę.

Korzystanie z komponentu Omówienie miejsca

Uwaga: ten przykład korzysta z biblioteki typu open source. Zobacz README w celu uzyskania pomocy i przekazują opinie związane z biblioteką.

Wypróbuj komponenty sieciowe. Użyj instrukcji Komponent internetowy Przegląd miejsc, który przedstawia szczegóły miejsca w formie wizualnej.

Grafika przedstawiająca różne rozmiary produktu
    Komponent Przegląd miejsca wyświetlany na podstawie pola rozmiaru wpisanego przez użytkownika.
Rys. 1. Informacje o miejscach z 5 różnymi rozmiarami

Tworzenie odwołania do miejsca za pomocą identyfikatora miejsca

Identyfikator miejsca to niepowtarzalne odniesienie do miejsca na Mapach Google. Identyfikatory miejsc są dostępne dla większości lokalizacji, takich jak firmy, punkty orientacyjne, parki, i skrzyżowań.

Aby użyć w aplikacji identyfikatora miejsca, musisz najpierw wyszukać identyfikator, którym jest dostępne w PlaceResult zapytania o wyszukiwanie miejsca lub szczegóły. Następnie możesz użyć tego identyfikatora miejsca, aby wyszukać Miejsce Szczegóły.

Identyfikatory miejsc są wykluczone z określonych ograniczeń dotyczących zapisywania w pamięci podręcznej artykułu 3.2.3(b) Warunki korzystania z usługi Google Maps Platform. Dzięki temu możesz przechowywać wartości identyfikatorów miejsc do późniejszego użycia. Dla: sprawdzone metody przechowywania identyfikatorów miejsc, przeczytaj omówienie identyfikatora miejsca.

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ęcie miejsca umożliwia dodawanie zdjęć o wysokiej jakości treści w witrynie. Usługa Zdjęcia zapewnia dostęp do milionów zdjęć zdjęć zapisanych w bazie danych Miejsc i Google+ Lokalnie. Gdy dotrzesz na miejsce informacji przy użyciu zapytania o szczegóły miejsca, zdjęcie dla odpowiednich treści fotograficznych będą zwracane referencje. Wyszukiwanie w pobliżu a żądania wyszukiwania tekstowego zwracają jedno odwołanie do zdjęcia dla danego miejsca, istotne. Usługa Zdjęcia zapewnia wówczas dostęp do wybranych zdjęć oraz dostosuje rozmiar obrazu do aplikacji.

Parametr PlacePhoto zwraca tablicę obiektów PlaceResult obiekt getDetails(), textSearch() lub Otrzymaliśmy prośbę nearbySearch() dotyczącą: 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 najwyżej jeden PlacePhoto obiekt.
  • Żą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 przekazywanie prawidłowej wartości PhotoOptions obiekt. Obiekt PhotoOptions zezwala aby określić maksymalną wysokość i szerokość obrazu. Jeśli określ wartość zarówno dla maxHeight, jak i maxWidth, usługa zdjęć zmieni rozmiar obrazu na mniejszy z tych dwóch rozmiarów, z zachowaniem oryginalnych proporcji.

Następujący fragment kodu akceptuje obiekt Place i dodaje znacznik na mapie, jeśli istnieje zdjęcie. Domyślny obraz znacznika zostanie zastąpiony przez niewielką 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, w tym od właścicieli firm i zdjęć przesłanych przez użytkowników. Najwięcej zdjęcia mogą zostać wykorzystane bez informacji o autorze lub będą miały wymagane atrybucja jest częścią grafiki. Jeśli jednak zostanie zwrócony Element photo zawiera wartość w parametrze html_attributions, musisz podać dodatkowe w aplikacji, w której wyświetlasz obraz.