You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
267 lines
11 KiB
267 lines
11 KiB
![]()
2 years ago
|
//
|
||
|
// 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
|