如何从PlaceID或GMSPlace获取GMSAddress

我正在使用适用于iOS的Google Places API的自动填充,并返回placeID。 我怎样才能从placeID获取GMSAddress? 我目前使用lookupPlaceID来获取GMSPlace,然后使用reverseGeocodeCoordinate从GMSPlace的坐标中获取GMSAddress。 但它要求Google API 3次:AutoComplete,lookupPlaceID,reverseGeocodeCoordinate。

有没有办法直接从PlaceID或GMSPlace获取GMSAddress?

这是Google Maps SDK for iOS 1.1.0的一个错误。 看到这里 。

正如这里的文档所述, address属性应该在GMSPlace实例上公开一个GMSAddress

我刚刚切换到使用REST API。 为API编写一个快速封装并完全抛弃Google SDK也不错。 如果你正在使用Alamofire ping我,我可能会分享我写的东西。

我可以从一个API调用的位置id中获取地址,代码如下:

 GMSPlacesClient *placesClient = [[GMSPlacesClient alloc] init]; [placesClient lookUpPlaceID:result.placeID callback:^(GMSPlace *place, NSError *error) { if (error != nil) { NSLog(@"Place Details error %@", [error localizedDescription]); return; } if (place != nil) { NSString *locality = @""; for (GMSAddressComponent *add in place.addressComponents) { //locality NSLog(@"%@",add.type); NSLog(@"%@",add.name); //type will be street_name, locality, admin_area, country, //name will hold the corresponding value } } else { NSLog(@"No place details for %@", result.placeID); } }]; 

现在暂时,这个版本的SDK(1.10.5)的代码是否安全(足够)? 这在未来6个月内将会破裂的概率是多less?

 NSArray* dic = [place valueForKey:@"addressComponents"]; for (int i=0;i<[dic count];i++) { if ([[[dic objectAtIndex:i] valueForKey:@"type"] isEqualToString:@"street_number"]) { NSLog(@"street_number: %@",[[dic objectAtIndex:i] valueForKey:@"name"]); }