123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- //
- // GMSPlacesClient.h
- // Google Places SDK for iOS
- //
- // Copyright 2016 Google LLC
- //
- // Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
- // Service: https://developers.google.com/maps/terms
- //
- #import <CoreLocation/CoreLocation.h>
- #import <UIKit/UIKit.h>
- #import "GMSPlace.h"
- #import "GMSPlaceFieldMask.h"
- #import "GMSPlacesDeprecationUtils.h"
- #import "GMSPlacesErrors.h"
- @class GMSAutocompleteFilter;
- @class GMSAutocompletePrediction;
- @class GMSAutocompleteSessionToken;
- @class GMSPlaceLikelihood;
- @class GMSPlaceLikelihoodList;
- @class GMSPlacePhotoMetadata;
- @class GMSPlacePhotoMetadataList;
- NS_ASSUME_NONNULL_BEGIN
- /**
- * Callback type for receiving place details lookups. If an error occurred,
- * |result| will be nil and |error| will contain information about the error.
- * @param result The |GMSPlace| that was returned.
- * @param error The error that occurred, if any.
- *
- * @related GMSPlacesClient
- */
- typedef void (^GMSPlaceResultCallback)(GMSPlace *_Nullable result, NSError *_Nullable error);
- /**
- * Callback type for receiving place likelihood lists. If an error occurred, |likelihoodList| will
- * be nil and |error| will contain information about the error.
- * @param likelihoodList The list of place likelihoods.
- * @param error The error that occurred, if any.
- *
- * @related GMSPlacesClient
- */
- typedef void (^GMSPlaceLikelihoodListCallback)(GMSPlaceLikelihoodList *_Nullable likelihoodList,
- NSError *_Nullable error);
- /**
- * Callback type for receiving array of |GMSPlaceLikelihood|s. If an error occurred, the array will
- * be nil and |error| will contain information about the error.
- *
- * @related GMSPlacesClient
- */
- typedef void (^GMSPlaceLikelihoodsCallback)(NSArray<GMSPlaceLikelihood *> *_Nullable likelihoods,
- NSError *_Nullable error);
- /**
- * Callback type for receiving autocompletion results. |results| is an array of
- * GMSAutocompletePredictions representing candidate completions of the query.
- * @param results An array of |GMSAutocompletePrediction|s.
- * @param error The error that occurred, if any.
- *
- * @related GMSPlacesClient
- */
- typedef void (^GMSAutocompletePredictionsCallback)(
- NSArray<GMSAutocompletePrediction *> *_Nullable results, NSError *_Nullable error);
- /**
- * Callback type for receiving place photos results. If an error occurred, |photos| will be nil and
- * |error| will contain information about the error.
- * @param photos The result containing |GMSPlacePhotoMetadata| objects.
- * @param error The error that occurred, if any.
- *
- * @related GMSPlacesClient
- */
- typedef void (^GMSPlacePhotoMetadataResultCallback)(GMSPlacePhotoMetadataList *_Nullable photos,
- NSError *_Nullable error);
- /**
- * Callback type for receiving |UIImage| objects from a |GMSPlacePhotoMetadata| object. If an error
- * occurred, |photo| will be nil and |error| will contain information about the error.
- * @param photo The |UIImage| which was loaded.
- * @param error The error that occurred, if any.
- *
- * @related GMSPlacesClient
- */
- typedef void (^GMSPlacePhotoImageResultCallback)(UIImage *_Nullable photo,
- NSError *_Nullable error);
- /**
- * Main interface to the Places SDK. Used for searching and getting details about places. This class
- * should be accessed through the [GMSPlacesClient sharedClient] method.
- *
- * GMSPlacesClient methods should only be called from the main thread. Calling these methods from
- * another thread will result in an exception or undefined behavior. Unless otherwise specified, all
- * callbacks will be invoked on the main thread.
- */
- @interface GMSPlacesClient : NSObject
- /**
- * Provides the shared instance of GMSPlacesClient for the Google Places SDK for iOS, creating it if
- * necessary.
- *
- * If your application often uses methods of GMSPlacesClient it may want to hold onto this object
- * directly, as otherwise your connection to Google may be restarted on a regular basis.
- */
- + (instancetype)sharedClient;
- /**
- * Provides your API key to the Google Places SDK for iOS. This key is generated for your
- * application via the Google Cloud Platform Console, and is paired with your application's
- * bundle ID to identify it. This should be called by your application before using
- * GMSPlacesClient (e.g., in application:didFinishLaunchingWithOptions:).
- *
- * @return YES if the APIKey was successfully provided.
- */
- + (BOOL)provideAPIKey:(NSString *)key;
- /**
- * Returns the open source software license information for the Google Places SDK for iOS. This
- * information must be made available within your application.
- */
- + (NSString *)openSourceLicenseInfo;
- /**
- * Returns the version for this release of the Google Places SDK for iOS.. For example, "1.0.0".
- */
- + (NSString *)SDKVersion;
- /**
- * Returns the long version for this release of the Google Places SDK for iOS.. For example, "1.0.0
- * (102.1)".
- */
- + (NSString *)SDKLongVersion;
- /**
- * Get details for a place. This method is non-blocking.
- * @param placeID The place ID to lookup.
- * @param callback The callback to invoke with the lookup result.
- */
- - (void)lookUpPlaceID:(NSString *)placeID callback:(GMSPlaceResultCallback)callback;
- /**
- * Gets the metadata for up to 10 photos associated with a place.
- *
- * Photos are sourced from a variety of locations, including business owners and photos contributed
- * by Google+ users. In most cases, these photos can be used without attribution, or will have the
- * required attribution included as a part of the image. However, you must use the |attributions|
- * property in the response to retrieve any additional attributions required, and display those
- * attributions in your application wherever you display the image. A maximum of 10 photos are
- * returned.
- *
- * Multiple calls of this method will probably return the same photos each time. However, this is
- * not guaranteed because the underlying data may have changed.
- *
- * This method performs a network lookup.
- *
- * @param placeID The place ID for which to lookup photos.
- * @param callback The callback to invoke with the lookup result.
- */
- - (void)lookUpPhotosForPlaceID:(NSString *)placeID
- callback:(GMSPlacePhotoMetadataResultCallback)callback;
- /**
- * Loads the image for a specific photo at its maximum size.
- *
- * Image data may be cached by the SDK. If the requested photo does not exist in the cache then a
- * network lookup will be performed.
- *
- * @param photoMetadata The |GMSPlacePhotoMetadata| for which to load a |UIImage|.
- * @param callback The callback to invoke with the loaded |UIImage|.
- */
- - (void)loadPlacePhoto:(GMSPlacePhotoMetadata *)photoMetadata
- callback:(GMSPlacePhotoImageResultCallback)callback;
- /**
- * Loads the image for a specific photo, scaled to fit the given maximum dimensions.
- *
- * The image will be scaled to fit within the given dimensions while maintaining the aspect ratio of
- * the original image. This scaling is performed server-side.
- *
- * If the scale parameter is not 1.0 maxSize will be multiplied by this value and the returned
- * |UIImage| will be set to have the specified scale. This parameter should be set to the screen
- * scale if you are loading images for display on screen.
- *
- * Image data may be cached by the SDK. If the requested photo does not exist in the cache then a
- * network lookup will be performed.
- *
- * NOTE: After applying the scale factor the dimensions in maxSize will be rounded up to the nearest
- * integer before use. If an image is requested which is larger than the maximum size available a
- * smaller image may be returned.
- *
- * @param photoMetadata The |GMSPlacePhotoMetadata| for which to load a |UIImage|.
- * @param maxSize The maximum size of the image.
- * @param scale The scale to load the image at.
- * @param callback The callback to invoke with the loaded |UIImage|.
- */
- - (void)loadPlacePhoto:(GMSPlacePhotoMetadata *)photoMetadata
- constrainedToSize:(CGSize)maxSize
- scale:(CGFloat)scale
- callback:(GMSPlacePhotoImageResultCallback)callback;
- /**
- * Returns an estimate of the place where the device is currently known to be located.
- *
- * Generates a place likelihood list based on the device's last estimated location. The supplied
- * callback will be invoked with this likelihood list upon success and an NSError upon an error.
- *
- * NOTE: This method requires that your app has permission to access the current device location.
- * Before calling this make sure to request access to the users location using [CLLocationManager
- * requestWhenInUseAuthorization] or [CLLocationManager requestAlwaysAuthorization]. If you do call
- * this method and your app does not have the correct authorization status, the callback will be
- * called with an error.
- *
- * @param callback The callback to invoke with the place likelihood list.
- */
- - (void)currentPlaceWithCallback:(GMSPlaceLikelihoodListCallback)callback;
- /**
- * Find Autocomplete predictions from text query. Results may optionally be biased towards a
- * certain location or restricted to an area. This method is non-blocking.
- *
- * The supplied callback will be invoked with an array of autocompletion predictions upon success
- * and an NSError upon an error.
- *
- * @param query The partial text to autocomplete.
- * @param filter The filter to apply to the results. This parameter may be nil.
- * @param sessionToken The |GMSAutocompleteSessionToken| to associate request to a billing session.
- * @param callback The callback to invoke with the predictions.
- */
- - (void)findAutocompletePredictionsFromQuery:(NSString *)query
- filter:(nullable GMSAutocompleteFilter *)filter
- sessionToken:(nullable GMSAutocompleteSessionToken *)sessionToken
- callback:(GMSAutocompletePredictionsCallback)callback;
- /**
- * Fetch details for a place. This method is non-blocking.
- * @param placeID The place ID to lookup.
- * @param placeFields The individual place fields requested for the place objects in the list.
- * @param sessionToken The |GMSAutocompleteSessionToken| to associate request to a billing session.
- * @param callback The callback to invoke with the lookup result.
- */
- - (void)fetchPlaceFromPlaceID:(NSString *)placeID
- placeFields:(GMSPlaceField)placeFields
- sessionToken:(nullable GMSAutocompleteSessionToken *)sessionToken
- callback:(GMSPlaceResultCallback)callback;
- /**
- * Find place likelihoods using the user's current location. This method is non-blocking.
- *
- * The supplied callback will be invoked with an array of places with likelihood scores upon success
- * and an NSError upon an error.
- *
- * @param placeFields The individual place fields requested for the place objects in the list.
- * @param callback The callback to invoke with place likelihoods.
- */
- - (void)findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:(GMSPlaceField)placeFields
- callback:
- (GMSPlaceLikelihoodsCallback)callback;
- @end
- NS_ASSUME_NONNULL_END
|