Bei einer „Nearby Search (New)“-Anfrage wird die zu suchende Region eingegeben
angegeben als Kreis, definiert durch die Breiten- und Längengradkoordinaten des Mittelpunkts des
Kreis und den Radius in Metern. Die Anfrage gibt eine Liste übereinstimmender Orte zurück, die jeweils durch einen
GMSPlace
-Objekt innerhalb des angegebenen Suchbereichs befindet.
Standardmäßig enthält die Antwort Orte aller Typen innerhalb des Suchbereichs. Sie können optional die Antwort filtern, indem Sie eine Liste von Ortstypen angeben, die explizit in den Antwort. Sie können z. B. festlegen, dass nur die Orte des Typs in die Antwort aufgenommen werden. „Restaurant“, „Bäckerei“ und „Café“ oder schließen Sie alle Orte des Typs „Schule“ aus.
„Nearby Search (New)“-Anfragen
Stellen Sie eine Nearby Search-Anfrage, indem Sie
GMSPlacesClient searchNearbyWithRequest:
,
übergeben
GMSPlaceSearchNearbyRequest
-Objekt, das die Anfrageparameter und eine Callback-Methode des Typs definiert
GMSPlaceSearchNearbyResultCallback
um die Antwort zu verarbeiten.
Das Objekt GMSPlaceSearchNearbyRequest
gibt alle
required und optional
-Parameter für die Anfrage. Zu den erforderlichen Parametern gehören:
- Die Liste der Felder, die im
GMSPlace
-Objekt zurückgegeben werden sollen, auch als Feldmaske, definiert durchGMSPlaceProperty
Wenn Sie nicht mindestens ein Feld in der Feldliste angeben oder der Feldliste hinzu, gibt der Aufruf einen Fehler zurück. - Die Standortbeschränkung, also der Kreis, der den Suchbereich definiert
In diesem Beispiel für eine Suchanfrage in der Nähe wird angegeben, dass die Antwort-GMSPlace
-Objekte
den Ortsnamen (GMSPlacePropertyName
) und die Koordinaten des Orts enthalten
(GMSPlacePropertyCoordinate
) für jedes GMSPlace
-Objekt in der Suche
Ergebnisse. Außerdem wird die Antwort so gefiltert, dass nur Orte vom Typ „Restaurant“ zurückgegeben werden. und „Café“.
Swift
// Array to hold the places in the response var placeResults: [GMSPlace] = [] // Define the search area as a 500 meter diameter circle in San Francisco, CA. let circularLocationRestriction = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500) // Specify the fields to return in the GMSPlace object for each place in the response. let placeProperties = [GMSPlaceProperty.name, GMSPlaceProperty.coordinate].map {$0.rawValue} // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. var request = GMSPlaceSearchNearbyRequest(locationRestriction: circularLocationRestriction, placeProperties: placeProperties) let includedTypes = ["restaurant", "cafe"] request.includedTypes = includedTypes let callback: GMSPlaceSearchNearbyResultCallback = { [weak self] results, error in guard let self, error == nil else { if let error { print(error.localizedDescription) } return } guard let results = results as? [GMSPlace] else { return } placeResults = results } GMSPlacesClient.shared().searchNearby(with: request, callback: callback)
Objective-C
// Array to hold the places in the response _placeResults = [NSArray array]; // Define the search area as a 500 meter diameter circle in San Francisco, CA. id<GMSPlaceLocationRestriction> circularLocation = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500); // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. GMSPlaceSearchNearbyRequest *request = [[GMSPlaceSearchNearbyRequest alloc] initWithLocationRestriction:circularLocation placeProperties:@[ GMSPlacePropertyName, GMSPlacePropertyCoordinate ]]; // Set the place types to filter on. NSArray<NSString *> *includedTypes = @[ @"restaurant", @"cafe" ]; request.includedTypes = [[NSMutableArray alloc] initWithArray:includedTypes]; [_placesClient searchNearbyWithRequest:request callback:^(NSArray<GMSPlace *> *_Nullable places, NSError *_Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { // Get list of places. _placeResults = places; } } ];
Places Swift SDK for iOS (Vorabversion)
let restriction = CircularCoordinateRegion(center: CLLocationCoordinate2DMake(37.7937, -122.3965), radius: 500) let searchNearbyRequest = SearchNearbyRequest( locationRestriction: restriction, placeProperties: [ .name, .coordinate], includedTypes: [ .restaurant, .cafe ], ) switch await placesClient.searchNearby(with: searchNearbyRequest) { case .success(let places): // Handle places case .failure(let placesError): // Handle error }
Nearby Search-Antworten
Die Nearby Search API gibt ein Array mit Übereinstimmungen in der Form vonGMSPlace
-Objekte mit einem GMSPlace
-Objekt pro übereinstimmendem Ort.
Geöffnet-Status abrufen
Das GMSPlacesClient
-Objekt enthält eine Mitgliederfunktion namens isOpenWithRequest
(isOpenRequest
in Swift und isPlaceOpenRequest
in GooglePlacesSwift), die eine Antwort zurückgibt, die basierend auf der im Aufruf angegebenen Zeit angibt, ob der Ort derzeit geöffnet ist.
Diese Methode verwendet ein einzelnes Argument vom Typ GMSPlaceIsOpenWithRequest
, das Folgendes enthält:
- Ein
GMSPlace
-Objekt oder ein String, der eine Orts-ID angibt. Weitere Informationen zum Erstellen des „Place“-Objekts mit den erforderlichen Feldern finden Sie unter Place Details.
- Ein optionales
NSDate
-Objekt (Obj-C) oderDate
-Objekt (Swift), das die Uhrzeit angibt, die Sie prüfen möchten. Wenn keine Uhrzeit angegeben ist, wird die Standardeinstellung „jetzt“ verwendet. - Eine
GMSPlaceOpenStatusResponseCallback
-Methode zum Verarbeiten der Antwort. >
Für die Methode GMSPlaceIsOpenWithRequest
müssen die folgenden Felder im Objekt GMSPlace
festgelegt werden:
GMSPlacePropertyUTCOffsetMinutes
GMSPlacePropertyBusinessStatus
GMSPlacePropertyOpeningHours
GMSPlacePropertyCurrentOpeningHours
GMSPlacePropertySecondaryOpeningHours
Wenn diese Felder nicht im Place-Objekt vorhanden sind oder Sie eine Orts-ID übergeben, werden sie mit GMSPlacesClient GMSFetchPlaceRequest:
abgerufen.
isOpenWithRequest
Antwort
isOpenWithRequest
gibt ein GMSPlaceIsOpenResponse
-Objekt mit einem booleschen Wert mit dem Namen status
zurück. Dieser gibt an, ob das Unternehmen geöffnet oder geschlossen ist oder ob der Status unbekannt ist.
Sprache | Wert, falls offen | Wert bei Schließung | Wert, falls Status unbekannt |
---|---|---|---|
Swift | .open |
.closed |
.unknown |
Objective-C | GMSPlaceOpenStatusOpen |
GMSPlaceOpenStatusClosed |
GMSPlaceOpenStatusUnknown |
GooglePlacesSwift (Vorabversion) | true |
false |
nil |
Abrechnung für isOpenWithRequest
- Die Felder
GMSPlacePropertyUTCOffsetMinutes
undGMSPlacePropertyBusinessStatus
werden unter der SKU „Basic Data“ abgerechnet. Der Rest der Öffnungszeiten wird unter der SKU Place Details (Advanced) berechnet. - Wenn das
GMSPlace
-Objekt diese Felder bereits aus einer früheren Anfrage enthält, werden Ihnen keine weiteren Kosten in Rechnung gestellt.
Beispiel: GMSPlaceIsOpenWithRequest
-Anfrage stellen
Das folgende Beispiel zeigt, wie ein GMSPlaceIsOpenWithRequest
in einem vorhandenen GMSPlace
-Objekt initialisiert wird.
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 }
Erforderliche Parameter
Verwenden Sie das Objekt GMSPlaceSearchNearbyRequest
, um die erforderlichen Parameter für
der Suche.
-
Liste der Felder
Wenn Sie Ortsdetails anfordern, müssen Sie die Daten angeben, im
GMSPlace
-Objekt für den Ort als Feldmaske zurückgeben. Um die Feldmaske ein Array von Werten ausGMSPlaceProperty
an dasGMSPlaceSearchNearbyRequest
-Objekt an. Die Maskierung von Feldern ist eine gute Designpraxis, um sicherzustellen, dass Sie keine unnötigen Daten anfordern, um unnötige Verarbeitungszeiten und Gebühren zu vermeiden.Geben Sie eines oder mehrere der folgenden Felder an:
Die folgenden Felder lösen die SKU „Nearby Search (Basic)“:
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
,GMSPlacePropertyCoordinate
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyName
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyPhotos
,GMSPlacePropertyPlaceID
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
Die folgenden Felder lösen die SKU „Nearby Search (Advanced)“:
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
Die folgenden Felder lösen die SKU „Nearby Search (Preferred)“:
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
Im folgenden Beispiel wird eine Liste von zwei Feldwerte , um anzugeben, dass das von einer Anfrage zurückgegebene
GMSPlace
-Objekt den Parametername
undplaceID
: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];
Places Swift SDK for iOS (Vorabversion)
// Specify the place data types to return. let fields: [PlaceProperty] = [.placeID, .displayName]
-
locationRestriction
GMSPlaceLocationRestriction
-Objekt, das den zu durchsuchenden Bereich als Kreis definiert, der durch einen Mittelpunkt und Radius in Metern. Der Radius muss zwischen 0,0 und 50.000,0 (einschließlich) liegen. Der Standardradius ist 0,0. Sie müssen ihn in Ihrer Anfrage auf einen Wert größer als 0,0 festlegen.
Optionale Parameter
Verwenden Sie das Objekt GMSPlaceSearchNearbyRequest
, um die optionalen Parameter für
der Suche.
-
eingeschlossen
Hiermit können Sie eine Liste von Typen aus Typen angeben Tabelle A zum Filtern in den Suchergebnissen. In jeder Typeinschränkungskategorie können bis zu 50 Typen angegeben werden.
Ein Ort kann nur einen einzigen primären Typ aus folgenden Typen haben: Tabelle A verknüpft mit . Der primäre Typ könnte beispielsweise
"mexican_restaurant"
oder"steak_house"
. Verwenden SieincludedPrimaryTypes
undexcludedPrimaryTypes
, um die Ergebnisse zu filtern den primären Typ eines Ortes.Ein Ort kann auch mehrere Typwerte aus Typen haben Tabelle A die damit verknüpft sind. Beispiele für Restauranttypen:
"seafood_restaurant"
,"restaurant"
,"food"
"point_of_interest"
,"establishment"
.includedTypes
verwenden undexcludedTypes
, um die Ergebnisse in der Liste der Typen zu filtern, die mit einen Ort.Wenn Sie einen allgemeinen primären Typ wie
"restaurant"
oder"hotel"
enthält, kann die Antwort Orte mit einem spezifischeren primären Typ enthalten als die angegebene. Sie geben beispielsweise an, dass der primäre Typ"restaurant"
Die Antwort kann dann Orte mit dem primären Typ"restaurant"
, aber die Antwort kann auch Orte mit einer spezifischeren primären Typ wie"chinese_restaurant"
oder"seafood_restaurant"
.Wenn für eine Suche mehrere Typeinschränkungen festgelegt sind, werden nur Orte die alle Einschränkungen erfüllen, zurückgegeben. Wenn Sie beispielsweise
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
, die Die zurückgegebenen Orte bieten"restaurant"
-bezogene Dienstleistungen, sind aber nicht primär aktiv als"steak_house"
.includedTypes
Eine Liste der Ortstypen aus Tabelle A, nach der gesucht werden soll. Wird dieser Parameter weggelassen, werden Orte aller Typen zurückgegeben.
excludedTypes
Eine Liste mit Ortstypen aus Tabelle A für den Ausschluss aus einer suchen.
Wenn Sie sowohl den
includedTypes
(z. B."school"
) als auch denexcludedTypes
(z. B."primary_school"
) in der Anfrage, dann der Antwort enthält Orte, die als"school"
, aber nicht als"primary_school"
. Die Antwort enthält Orte, die mit mindestens einem der folgenden Kriterien übereinstimmen:includedTypes
und keiner derexcludedTypes
.Gibt es widersprüchliche Typen, z. B. einen Typ, der in beiden
includedTypes
-Dateien vorkommt, undexcludedTypes
, wird der FehlerINVALID_REQUEST
zurückgegeben.includedPrimaryTypes
Eine Liste der primären Ortstypen von Einzuschließende Tabelle A bei einer Suche.
excludedPrimaryTypes
Eine Liste der primären Ortstypen von Auszuschließende Tabelle A über die Suche.
Gibt es widersprüchliche Primärtypen, wie ein Typ, der in beiden
includedPrimaryTypes
undexcludedPrimaryTypes
, einINVALID_ARGUMENT
Fehler wird zurückgegeben. -
maxResultCount
Gibt die maximale Anzahl der Ortsergebnisse an, die zurückgegeben werden sollen. Muss zwischen folgenden Werten liegen: 1 und 20 (Standardeinstellung) einschließlich.
-
rankPreference
Der zu verwendende Rankingtyp. Wenn Sie diesen Parameter nicht angeben, werden die Ergebnisse nach Beliebtheit sortiert. Folgende Werte sind möglich:
.popularity
(Standardeinstellung): Sortiert die Ergebnisse nach ihrer Beliebtheit..distance
Die Ergebnisse werden in aufsteigender Reihenfolge nach ihrer Entfernung vom angegebenen Ort.
-
regionCode
Der Regionscode, der zum Formatieren der Antwort verwendet wird, angegeben als <ph type="x-smartling-placeholder"></ph> zweistelligen CLDR-Code eingeben. Es gibt keinen Standardwert.
Wenn der Ländername des Felds
formattedAddress
in der Antwort mit demregionCode
wird der Ländercode beiformattedAddress
weggelassen. Dieser Parameter hat keine Auswirkungen aufadrFormatAddress
. Dazu gehören immer das Land Name oder aufshortFormattedAddress
, wo ihn nie enthalten ist.Die meisten CLDR-Codes sind identisch mit ISO 3166-1-Codes, mit einigen nennenswerten Ausnahmen. Die ccTLD des Vereinigten Königreichs lautet beispielsweise „uk“ (.co.uk), während der ISO 3166-1-Code „gb“ lautet (technisch für die Rechtspersönlichkeit des Vereinigten Königreichs Großbritannien und Nordirland“). Der Parameter kann sich gemäß geltendem Recht auf Ergebnisse auswirken.
Zuordnungen in der App anzeigen
Wenn Ihre App Informationen anzeigt, die von
GMSPlacesClient
,
wie Fotos und Rezensionen, muss die App auch die erforderlichen Quellenangaben enthalten.
Beispielsweise kann die Eigenschaft reviews
des Objekts GMSPlacesClient
enthält ein Array mit bis zu fünf
GMSPlaceReview
Objekte. Jedes GMSPlaceReview
-Objekt kann Attributionen und Autorenangaben enthalten.
Wenn Sie die Rezension in Ihrer App präsentieren, müssen auch Namensnennungen und Autoren angezeigt werden.
Namensnennung.
Weitere Informationen finden Sie in der Dokumentation zu Quellenangaben.