Dettagli luogo (nuovo)

Seleziona la piattaforma: Android iOS JavaScript Servizio web

L'SDK Places per iOS (novità) fornisce alla tua app informazioni dettagliate sui luoghi, tra cui nome e indirizzo, l'area geografica località specificata come coordinate di latitudine/longitudine, il tipo di luogo (ad esempio come discoteca, negozio di animali, museo e altro ancora. Per accedere a queste informazioni per un luogo specifico, puoi utilizzare l'ID luogo, un identificatore stabile che identifica un luogo.

Visualizza i dettagli del luogo

La GMSPlace contiene informazioni su un luogo specifico, inclusi tutti i campi di dati mostrati Campi dei dati dei luoghi (novità). Ricevi un GMSPlace richiamando GMSPlacesClient fetchPlaceWithRequest:, passa un oggetto GMSFetchPlaceRequest e un metodo di callback del tipo GMSPlaceResultCallback.

L'oggetto GMSFetchPlaceRequest specifica:

  • (Obbligatorio) L'ID luogo, un identificatore univoco di un luogo in Google Places database e su Google Maps.
  • (Obbligatorio) L'elenco di campi da restituire nell'oggetto GMSPlace, chiamato anche maschera del campo, come definita GMSPlaceProperty. Se non specifichi almeno un campo nell'elenco dei campi o se ometti all'elenco dei campi, la chiamata restituisce un errore.
  • (Facoltativo) Il codice regione utilizzato per formattare la risposta.
  • (Facoltativo) Il token di sessione utilizzato per terminare una sessione di completamento automatico (nuova).

Invia una richiesta Place Details

Questo esempio ottiene un luogo per ID, trasmettendo i seguenti parametri:

  • L'ID luogo di ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Un elenco di campi che specifica di restituire il nome del luogo e l'URL del sito web.
  • Un GMSPlaceResultCallback per gestire il risultato.

L'API richiama il metodo di callback specificato, passando un GMSPlace . Se il luogo non viene trovato, l'oggetto luogo è nullo.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];

SDK Places Swift per iOS (anteprima)

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Risposta Place Details

Place Details restituisce un Oggetto GMSPlace contenente dettagli sul luogo. Solo i campi specificati nell'elenco dei campi vengono compilati nell'oggetto GMSPlace.

Ottieni stato di apertura

L'oggetto GMSPlacesClient contiene una funzione membro denominata isOpenWithRequest (isOpenRequest in Swift e isPlaceOpenRequest in GooglePlacesSwift) che restituisce una risposta che indica se il luogo è attualmente aperto, in base all'orario specificato nella chiamata.

Questo metodo prende un singolo argomento di tipo GMSPlaceIsOpenWithRequest che contiene:

  • Un oggetto GMSPlace o una stringa che specifica un ID luogo. Per ulteriori informazioni sulla creazione di un oggetto Place con i campi necessari, consulta Dettagli luogo.
  • Un oggetto facoltativo NSDate (Obj-C) o Date (Swift) che specifica l'ora da controllare. Se non viene specificata alcuna ora, il valore predefinito è ora.
  • Un metodo GMSPlaceOpenStatusResponseCallback per gestire la risposta.
  • &gt;
di Gemini Advanced.

Il metodo GMSPlaceIsOpenWithRequest richiede l'impostazione dei seguenti campi nell'oggetto GMSPlace:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Se questi campi non vengono forniti nell'oggetto Place o se passi un ID luogo, il metodo utilizza GMSPlacesClient GMSFetchPlaceRequest: per recuperarli.

isOpenWithRequest risposta

isOpenWithRequest restituisce un oggetto GMSPlaceIsOpenResponse contenente un valore booleano denominato status che indica se l'attività è aperta, chiusa o se lo stato è sconosciuto.

Lingua Valore se aperto Valore se chiuso Valore se stato sconosciuto
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (anteprima) true false nil

Fatturazione per isOpenWithRequest

  • I campi GMSPlacePropertyUTCOffsetMinutes e GMSPlacePropertyBusinessStatus vengono addebitati in base allo SKU di base dei dati. Il resto dell'orario di apertura viene addebitato mediante lo SKU Place Details (Advanced).
  • Se l'oggetto GMSPlace presenta già questi campi di una richiesta precedente, non ti verrà addebitato alcun costo.

Esempio: invia una richiesta GMSPlaceIsOpenWithRequest

L'esempio seguente mostra come inizializzare GMSPlaceIsOpenWithRequest all'interno di un oggetto GMSPlace esistente.

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];
  
          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }
  
            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

GooglePlacesSwift

          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

Parametri obbligatori

Utilizza l'oggetto GMSFetchPlaceRequest per specificare i parametri richiesti.

ID luogo

L'ID luogo utilizzato in Places SDK per iOS è il stesso identificatore utilizzato nell'API Places, Places SDK for Android e altre API di Google. Ogni ID luogo può fare riferimento a un solo luogo, ma un singolo luogo può averne più di di un ID luogo.

In alcuni casi, un luogo può ottenere un nuovo ID luogo. Ad esempio, questo può accadere se un'attività si sposta in una nuova sede.

Quando richiedi un luogo specificando un ID luogo, hai la certezza che riceverai sempre lo stesso punto nella risposta (se il luogo esiste già). Tieni presente, tuttavia, che la risposta potrebbe contenere un ID luogo che diverso da quello indicato nella tua richiesta.

Elenco campi

Quando richiedi i dettagli del luogo, devi specificare i dati da ritorna nell'oggetto GMSPlace per il luogo come maschera di campo. Per definire la maschera dei campi: passa un array di valori GMSPlaceProperty all'oggetto GMSFetchPlaceRequest. Il mascheramento dei campi è una buona pratica di progettazione per garantire di non richiedere dati non necessari, che consente di evitare tempi di elaborazione e addebiti di fatturazione non necessari.

Specifica uno o più dei seguenti campi:

  • I seguenti campi attivano lo SKU Place Details (solo ID):

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • I seguenti campi attivano lo SKU Place Details (solo posizione):

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • I seguenti campi attivano lo SKU Place Details (di base):

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • I seguenti campi attivano lo SKU Place Details (Advanced):

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • I seguenti campi attivano lo SKU Place Details (preferito):

    GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

L'esempio seguente trasmette un elenco di due valori del campo per specificare che l'oggetto GMSPlace restituito da una richiesta contiene Campi name e placeID:

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

SDK Places Swift per iOS (anteprima)

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

Parametri facoltativi

Utilizza l'oggetto GMSFetchPlaceRequest per specificare i parametri facoltativi.

regionCode

Il codice regione utilizzato per formattare la risposta, specificato come codice CLDR a due caratteri. Questo parametro può anche avere un effetto bias nei risultati di ricerca. Non esiste un valore predefinito.

Se il nome del paese nel campo dell'indirizzo nella risposta corrisponde alla il prefisso, il codice del paese viene omesso dall'indirizzo.

La maggior parte dei codici CLDR è identica ai codici ISO 3166-1, con alcune degne di nota. Ad esempio, il ccTLD del Regno Unito è "uk" (.co.uk) mentre il codice ISO 3166-1 è "gb" (tecnicamente per persona giuridica del "Regno Unito di Gran Bretagna e Irlanda del Nord"). Il parametro può influire sui risultati in base alla legge vigente.

sessionToken

I token di sessione sono stringhe generate dagli utenti che monitorano le chiamate di completamento automatico (Nuova) come "sessioni". Il completamento automatico (novità) utilizza i token di sessione per Raggruppare le fasi di query e selezione del luogo di una ricerca con completamento automatico di un utente in una sessione discreta ai fini della fatturazione. I token di sessione vengono passati a Place Details (novità) che seguono le chiamate del completamento automatico (nuove). Per ulteriori informazioni, vedi Token di sessione.

Attribuzioni display nell'app

Quando la tua app mostra informazioni ottenute da GMSPlacesClient, come foto e recensioni, nell'app devono essere mostrate anche le attribuzioni richieste.

Ad esempio, la proprietà reviews dell'oggetto GMSPlacesClient contiene un array di cinque GMSPlaceReview: di oggetti strutturati. Ogni oggetto GMSPlaceReview può contenere attribuzioni e attribuzioni dell'autore. Se mostri la recensione nell'app, devi mostrare anche eventuali attribuzioni o autori l'attribuzione dei contenuti.

Per ulteriori informazioni, consulta la documentazione su attribuzioni.