LPGoogleFunctions是一个iOS库,提供了访问某些Google API函数的便捷方式。
https://developers.google.com/
由Luka Penger创建 http://lukapenger.eu
如果要将该组件通过CocoaPods作为Pod项目包含,请在Podfile中添加以下行:
pod "LPGoogleFunctions"
LPGoogleFunctions使用ARC(自动引用计数)。
如果您在非ARC项目中使用LPGoogleFunctions,则需要在每个LPGoogleFunctions源文件上设置-fobjc-arc
编译器标志。
在Xcode中设置编译器标志,转到您的活动目标并选择“构建设置”选项卡。现在选择所有LPGoogleFunctions源文件,按Enter键,插入-fobjc-arc
然后“完成”,禁用LPGoogleFunctions的ARC。
Google Directions API是一个通过HTTP请求计算两个位置之间方向的API服务。您可以搜索几种交通方式的路线,包括公共交通、驾车、步行或骑自行车。方向可以指定起点、终点和经纬度坐标作为文本字符串(例如,“芝加哥,IL”或“达尔文,NT,澳大利亚”)或作为经纬度坐标。Direction API可以使用一系列经纬度坐标返回分段路线。
参数
- (void)loadDirectionsForOrigin:(LPLocation *)origin forDestination:(LPLocation *)destination directionsTravelMode:(LPGoogleDirectionsTravelMode)travelMode directionsAvoidTolls:(LPGoogleDirectionsAvoid)avoid directionsUnit:(LPGoogleDirectionsUnit)unit directionsAlternatives:(BOOL)alternatives departureTime:(NSDate *)departureTime arrivalTime:(NSDate *)arrivalTime waypoints:(NSArray *)waypoints successfulBlock:(void (^)(LPDirections *directions))successful failureBlock:(void (^)(LPGoogleStatus status))failure;
可以使用块和委托方法。
- (void)googleFunctionsWillLoadDirections:(LPGoogleFunctions *)googleFunctions;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions didLoadDirections:(LPDirections *)directions;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions errorLoadingDirectionsWithStatus:(LPGoogleStatus)status;
Google Maps 图像 API 使得将街景图像嵌入到图像视图变得简单。
参数
位置方法
- (void)loadStreetViewImageForLocation:(LPLocation *)location imageSize:(CGSize)size heading:(float)heading fov:(float)fov pitch:(float)pitch successfulBlock:(void (^)(UIImage *image))successful failureBlock:(void (^)(NSError *error))failure;
地址方法
- (void)loadStreetViewImageForAddress:(NSString *)address imageSize:(CGSize)size heading:(float)heading fov:(float)fov pitch:(float)pitch successfulBlock:(void (^)(UIImage *image))successful failureBlock:(void (^)(NSError *error))failure;
成功的块将返回 UIImage。
Google Maps 图像 API 使得将静态 Google Maps 图像嵌入到图像视图变得简单。
参数
位置方法
- (void)loadStaticMapImageForLocation:(LPLocation *)location zoomLevel:(int)zoom imageSize:(CGSize)size imageScale:(int)scale mapType:(LPGoogleMapType)maptype markersArray:(NSArray *)markers successfulBlock:(void (^)(UIImage *image))successful failureBlock:(void (^)(NSError *error))failure;
地址方法
- (void)loadStaticMapImageForAddress:(NSString *)address zoomLevel:(int)zoom imageSize:(CGSize)size imageScale:(int)scale mapType:(LPGoogleMapType)maptype markersArray:(NSArray*)markers successfulBlock:(void (^)(UIImage *image))successful failureBlock:(void (^)(NSError *error))failure;
成功的块将返回 UIImage。
Google Places 自动完成 API 是一种基于文字搜索词和可选地理边界的网页服务,它返回位置信息。该 API 可用于通过返回文本地理搜索时的位置(如企业、地址和兴趣点)来提供自动完成功能,用户输入时即可返回这些位置。
- (void)loadPlacesAutocompleteForInput:(NSString *)input offset:(int)offset radius:(int)radius location:(LPLocation *)location placeType:(LPGooglePlaceType)placeType countryRestriction:(NSString *)countryRestriction successfulBlock:(void (^)(LPPlacesAutocomplete *placesAutocomplete))successful failureBlock:(void (^)(LPGoogleStatus status))failure;
可以使用块和委托方法。
- (void)googleFunctionsWillLoadPlacesAutocomplete:(LPGoogleFunctions *)googleFunctions forInput:(NSString *)input;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions errorLoadingPlacesAutocompleteWithStatus:(LPGoogleStatus)status;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions didLoadPlacesAutocomplete:(LPPlacesAutocomplete *)placesAutocomplete;
一旦您从位置搜索中获得了参考,您可以通过发起位置详细信息请求来请求有关特定场所或兴趣点的更多详细信息。位置详细信息请求返回有关指示位置的更全面信息,例如其完整地址、电话号码、用户评分和评论。
参数
- (void)loadPlaceDetailsForReference:(NSString *)reference successfulBlock:(void (^)(LPPlaceDetailsResults *placeDetailsResults))successful failureBlock:(void (^)(LPGoogleStatus status))failure;
可以使用块和委托方法。
- (void)googleFunctionsWillLoadPlaceDetailsResult:(LPGoogleFunctions *)googleFunctions forReference:(NSString *)reference;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions errorLoadingPlaceDetailsResultWithStatus:(LPGoogleStatus)status;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions didLoadPlaceDetailsResult:(LPPlaceDetailsResults *)placeDetailsResults;
Google语音文本。
参数
- (void)speakText:(NSString *)text failureBlock:(void (^)(NSError *error))failure;
地理编码是将地址(例如"1600 Amphitheatre Parkway, Mountain View, CA")转换为地理坐标(例如纬度37.423021和经度-122.083739)的过程,这可以用于放置标记或定位地图。
参数
位置方法
- (void)loadGeocodingForLocation:(LPLocation *)location filterComponents:(NSArray *)filterComponents successfulBlock:(void (^)(LPGeocodingResults *geocodingResults))successful failureBlock:(void (^)(LPGoogleStatus status))failure;
地址方法
- (void)loadGeocodingForAddress:(NSString *)address filterComponents:(NSArray *)filterComponents successfulBlock:(void (^)(LPGeocodingResults *geocodingResults))successful failureBlock:(void (^)(LPGoogleStatus status))failure;
可以使用块和委托方法。
- (void)googleFunctionsWillLoadGeocoding:(LPGoogleFunctions *)googleFunctions forAddress:(NSString *)address filterComponents:(NSArray *)filterComponents;
- (void)googleFunctionsWillLoadGeocoding:(LPGoogleFunctions *)googleFunctions forLocation:(LPLocation *)location filterComponents:(NSArray *)filterComponents;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions errorLoadingGeocodingWithStatus:(LPGoogleStatus)status;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions didLoadGeocodingResults:(LPGeocodingResults *)geocodingResults;
位置自动补全 + 位置详细信息
参数
- (void)loadPlacesAutocompleteWithDetailsForInput:(NSString *)input offset:(int)offset radius:(int)radius location:(LPLocation *)location placeType:(LPGooglePlaceType)placeType countryRestriction:(NSString *)countryRestriction successfulBlock:(void (^)(NSArray *placesWithDetails))successful failureBlock:(void (^)(LPGoogleStatus status))failure;
Google位置API文本搜索服务是一种基于字符串(例如"在纽约披萨"或"靠近Ottawa的鞋店")返回位置集信息的Web服务。
参数
- (void)loadPlaceTextSearchForQuery:(NSString *)query location:(LPLocation *)location radius:(int)radius successfulBlock:(void (^)(LPPlaceSearchResults *placeResults))successful failureBlock:(void (^)(LPGoogleStatus status))failure;
可以使用块和委托方法。
- (void)googleFunctionsWillLoadPlaceSearch:(LPGoogleFunctions *)googleFunctions forQuery:(NSString *)guery;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions didLoadPlaceSearch:(LPPlaceSearchResults *)placeResults;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions errorLoadingPlaceSearchWithStatus:(LPGoogleStatus)status;
地点照片服务是一个只读API,允许您轻松地将高分辨率照片内容添加到您的应用中。照片服务使您能够访问存储在地点和谷歌+本地的数据库中的数百万张照片。当您使用地点搜索或地点详情请求搜索地点时,会返回相关照片内容的参考信息。照片服务允许您访问引用的照片,并将图像调整为适用于应用的优化尺寸。
参数
- (void)loadPlacePhotoForReference:(NSString *)reference maxHeight:(int)maxHeight maxWidth:(int)maxWidth successfulBlock:(void (^)(UIImage *image))successful failureBlock:(void (^)(NSError *error))failure;
谷歌距离矩阵API是一种提供起点和目的地矩阵旅行距离和时间的服务。返回的信息基于根据谷歌地图API计算出的推荐路线之间的信息,由包含每对距离和持续时间值的行组成。
参数
- (void)loadDistanceMatrixForOrigins:(NSArray *)origins forDestinations:(NSArray *)destinations directionsTravelMode:(LPGoogleDistanceMatrixTravelMode)travelMode directionsAvoidTolls:(LPGoogleDistanceMatrixAvoid)avoid directionsUnit:(LPGoogleDistanceMatrixUnit)unit departureTime:(NSDate *)departureTime successfulBlock:(void (^)(LPDistanceMatrix *distanceMatrix))successful failureBlock:(void (^)(LPGoogleStatus status))failure;
可以使用块和委托方法。
- (void)googleFunctionsWillLoadDistanceMatrix:(LPGoogleFunctions *)googleFunctions;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions didLoadDistanceMatrix:(LPDistanceMatrix *)distanceMatrix;
- (void)googleFunctions:(LPGoogleFunctions *)googleFunctions errorLoadingDistanceMatrixWithStatus:(LPGoogleStatus)status;
LPGoogleFunctions使用AFNetworking库进行网络通信。 [https://github.com/AFNetworking/AFNetworking](https://github.com/AFNetworking/AFNetworking)
此代码是根据MIT许可证的条款和条件进行分发的。
每个LPGoogleFunctions版本简要总结可以在wiki上找到。