Le SDK Places pour iOS (nouveau) fournit à votre application des informations détaillées sur un lieu, comme son nom et son adresse, son emplacement l'emplacement spécifié en tant que coordonnées de latitude/longitude, le type de lieu (boîte de nuit, animalerie, musée, etc.). Pour accéder à ces informations un lieu spécifique, vous pouvez utiliser l'identifiant de lieu, un identifiant stable qui identifie un lieu.
Obtenir des informations sur un lieu
La
GMSPlace
contient des informations sur un lieu spécifique, y compris tous les champs de données affichés dans
Champs de données de lieu (nouveau). Obtenez un
GMSPlace
en appelant
GMSPlacesClient
fetchPlaceWithRequest:
,
en transmettant un objet GMSFetchPlaceRequest
et
Méthode de rappel du type
GMSPlaceResultCallback
.
L'objet GMSFetchPlaceRequest
spécifie:
- (Obligatoire) L'identifiant de lieu, qui est un identifiant unique d'un lieu dans Google Adresses. base de données et sur Google Maps.
- (Obligatoire) Liste des champs à renvoyer dans l'objet
GMSPlace
, également appelé masque de champ, tel que défini parGMSPlaceProperty
Si vous ne spécifiez pas au moins un champ dans la liste des champs ou si vous omettez la liste des champs, l'appel renvoie une erreur. - (Facultatif) Code régional utilisé pour mettre en forme la réponse.
- (Facultatif) Jeton de session utilisé pour mettre fin à une session Autocomplete (New).
Envoyer une requête Places Details
Cet exemple obtient un lieu par son identifiant, en transmettant les paramètres suivants:
- ID de lieu de
ChIJV4k8_9UodTERU5KXbkYpSYs
. - Liste de champs indiquant de renvoyer le nom du lieu et l'URL du site Web.
- Un
GMSPlaceResultCallback
pour gérer le résultat.
L'API invoque la méthode de rappel spécifiée, en transmettant une
GMSPlace
. Si le lieu est introuvable, l'objet GMSPlace est nul.
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); } }];
GooglePlacesSwift
// 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 }
Réponse Place Details
Place Details renvoie un
Objet GMSPlace
contenant des détails sur le lieu. Seuls les champs spécifiés dans la liste des champs sont renseignés dans l'objet GMSPlace
.
Obtenir l'état d'ouverture
L'objet GMSPlacesClient
contient une fonction membre appelée isOpenWithRequest
(isOpenRequest
en Swift et isPlaceOpenRequest
dans GooglePlacesSwift) qui renvoie une réponse indiquant si le lieu est actuellement ouvert, en fonction de l'heure spécifiée dans l'appel.
Cette méthode utilise un seul argument de type GMSPlaceIsOpenWithRequest
qui contient:
- Un objet
GMSPlace
ou une chaîne spécifiant un ID de lieu. Pour en savoir plus sur la création de l'objet Place avec les champs nécessaires, consultez Informations sur le lieu.
- Objet facultatif
NSDate
(Obj-C) ouDate
(Swift) spécifiant l'heure à laquelle vous souhaitez vérifier. Si aucune heure n'est spécifiée, la valeur par défaut est "now". - Une méthode
GMSPlaceOpenStatusResponseCallback
pour gérer la réponse.
La méthode GMSPlaceIsOpenWithRequest
nécessite que les champs suivants soient définis dans l'objet GMSPlace
:
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyBusinessStatus
GMSPlacePropertyOpeningHours
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
Si ces champs ne sont pas fournis dans l'objet Place ou si vous transmettez un ID de lieu, la méthode les récupère à l'aide de GMSPlacesClient GMSFetchPlaceRequest:
.
isOpenWithRequest
réponse
isOpenWithRequest
renvoie un objet GMSPlaceIsOpenResponse
contenant une valeur booléenne nommée status
qui indique si l'établissement est ouvert ou fermé, ou si l'état est inconnu.
Langue | Valeur si ouverte | Valeur en cas de fermeture | Valeur si état inconnu |
---|---|---|---|
Swift | .open |
.closed |
.unknown |
Objective-C | GMSPlaceOpenStatusOpen |
GMSPlaceOpenStatusClosed |
GMSPlaceOpenStatusUnknown |
GooglePlacesSwift (Preview) | true |
false |
nil |
Facturation pour isOpenWithRequest
- Les champs
GMSPlacePropertyUTCOffsetMinutes
etGMSPlacePropertyBusinessStatus
sont facturés sous le SKU Basic Data. Les autres horaires d'ouverture sont facturés sous le SKU Place Details (Advanced). - Si votre objet
GMSPlace
contient déjà ces champs provenant d'une requête précédente, vous ne serez plus facturé.
Exemple: Envoyer une requête GMSPlaceIsOpenWithRequest
L'exemple suivant montre comment initialiser un GMSPlaceIsOpenWithRequest
dans un objet GMSPlace
existant.
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 }
Paramètres obligatoires
Utilisez l'objet GMSFetchPlaceRequest
pour spécifier les paramètres requis.
ID de lieu
L'identifiant de lieu utilisé dans le SDK Places pour iOS est le Même identifiant que celui utilisé dans l'API Places, le SDK Places pour Android et d'autres API Google. Chaque identifiant de lieu ne peut faire référence qu'à un seul lieu, mais un seul peut en contenir plusieurs. plusieurs ID de lieu.
Dans certains cas, un lieu peut recevoir un nouvel ID de lieu. Par exemple, lorsqu'un professionnel déménage.
Lorsque vous demandez un lieu en spécifiant un ID de lieu, vous êtes sûr que vous recevrez toujours la même réponse au même endroit (si le lieu est toujours . Notez toutefois que la réponse peut contenir un ID de lieu différente de celle de votre demande.
Liste des champs
Lorsque vous demandez des détails sur un lieu, vous devez spécifier les données pour
affichée dans l'objet GMSPlace
du lieu en tant que masque de champ. Pour définir le masque de champ
transmettre un tableau de valeurs
GMSPlaceProperty
à l'objet GMSFetchPlaceRequest
.
Le masquage du champ est une bonne pratique de conception
afin de vous assurer que vous ne demandez pas de données inutiles, ce qui
permet d'éviter des délais de traitement et des frais de facturation inutiles.
Renseignez un ou plusieurs des champs suivants:
Les champs suivants déclenchent le SKU Place Details (ID Only):
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
,GMSPlacePropertyPhotos
Les champs suivants déclenchent le SKU Place Details (Location Only):
GMSPlacePropertyAddressComponents
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyViewport
Les champs suivants déclenchent le SKU Place Details (Basic):
GMSPlacePropertyBusinessStatus
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyWheelchairAccessibleEntrance
Les champs suivants déclenchent le SKU Place Details (Advanced):
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
Les champs suivants déclenchent le SKU Place Details (Preferred):
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
.
L'exemple suivant transmet une liste de
valeurs des champs
pour spécifier que l'objet GMSPlace
renvoyé par une requête contient le
Champs name
et 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];
GooglePlacesSwift
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
Paramètres facultatifs
Utilisez l'objet GMSFetchPlaceRequest
pour spécifier les paramètres facultatifs.
regionCode
Code régional utilisé pour mettre en forme la réponse, spécifié sous la forme d'une CLDR à deux caractères. Ce paramètre peut aussi avoir un effet de biais dans les résultats de recherche. Il n'existe pas de valeur par défaut.
Si le nom de pays du champ d'adresse dans la réponse correspond au code de région, le code pays est omis de l'adresse.
La plupart des codes CLDR sont identiques aux codes ISO 3166-1, à quelques exceptions près. Par exemple, le ccTLD au Royaume-Uni est "uk" (.co.uk), tandis que son code ISO 3166-1 est "gb". (d'un point de vue technique, du Royaume-Uni de Grande-Bretagne et d'Irlande du Nord). Ce paramètre peut avoir un impact sur les résultats en fonction du droit applicable.
sessionToken
Les jetons de session sont des chaînes générées par l'utilisateur qui suivent la saisie semi-automatique (Nouveau) les appels en tant que "sessions". La saisie semi-automatique (nouveau) utilise des jetons de session pour regrouper les phases de requête et de sélection de lieux d'une recherche avec saisie semi-automatique d'un utilisateur dans une session distincte ; à des fins de facturation. Les jetons de session sont transmis à Place Details (nouveau) qui suivent les appels de saisie semi-automatique (nouveau). Pour en savoir plus, consultez Jetons de session :
Afficher les mentions dans votre application
Lorsque votre application affiche des informations obtenues
GMSPlacesClient
,
telles que des photos et des avis, l'application doit également afficher les mentions requises.
Par exemple, la propriété reviews
de l'objet GMSPlacesClient
contient un tableau comportant jusqu'à cinq
GMSPlaceReview
d'objets. Chaque objet GMSPlaceReview
peut contenir des attributions et des attributions d'auteurs.
Si vous affichez l'avis dans votre application, vous devez également mentionner la paternité ou l'auteur
l'attribution.
Pour en savoir plus, consultez la documentation attributions.