如何使用Google Places API获取地点的位置坐标?

时间:2017-02-03 05:37:13

标签: ios objective-c google-places

我正在实施GMSPlace,使用自动完成我确实获得了地点ID,现在使用地方ID我想找到该地点的位置坐标。 GMSPlacesClient *placeClient=[GMSPlacesClient sharedClient]; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.type = kGMSPlacesAutocompleteTypeFilterEstablishment; [placeClient autocompleteQuery:str bounds:nil filter:filter callback:^(NSArray *results, NSError *error) { if (error != nil) { NSLog(@"Autocomplete error %@", [error localizedDescription]); return; } for (GMSAutocompletePrediction* result in results) { //NSLog(@"Result '%@'", result.attributedFullText.string); [placeName addObject:[NSString stringWithFormat:@"%@",result.attributedFullText.string]]; [placeID addObject:[NSString stringWithFormat:@"%@",result.placeID]]; } NSLog(@"%@",placeName); NSLog(@"%@",placeName); }]; } 不会返回几何位置。我搜索过但没有得到任何帮助。

SELECT CONCAT(SUBSTRING_INDEX(PERSON, ' ',-1),', ' ,SUBSTRING_INDEX(PERSON, ' ',1)) FROM LEDGER

4 个答案:

答案 0 :(得分:3)

我认为你可以使用像这样的地方ID获取地方详情

def price_category(data,id_col,new_col,price_pivot_table):
    data[new_col]=''
    i=-1
    for item in data[id_col]:
       i+=1
       if price_pivot_table[item]>500:
          data.loc[i,new_col]='low'
       elif price_pivot_table[item]>=500 or price_pivot_table[item]<1500:
          data.loc[i,new_col]='medium'
       else:
          data.loc[i,new_col]='high'

参考:here

答案 1 :(得分:1)

如果您有地方ID,则可以使用此override func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? { guard let cell = tableView.cellForRow(at: indexPath) else { // Handle invalid cell ... } if cell.isSelected { if let respond = tableView.delegate?.responds( to: #selector(tableView(_:willDeselectRowAt:))), respond == true { tableView.delegate?.tableView!(tableView, willDeselectRowAt: indexPath) } tableView.deselectRow(at: indexPath, animated: true) if let respond = tableView.delegate?.responds( to: #selector(tableView(_:didDeselectRowAt:))), respond == true { tableView.delegate?.tableView!(tableView, didDeselectRowAt: indexPath) } return nil } return indexPath } 找到坐标。这为您提供了您所在地的详细信息。

URL

答案 2 :(得分:1)

您可以从地点ID获取地点详细信息。检查这个Dock。此调用将返回GMSPlace。 GSMPlace具有属性坐标。

答案 3 :(得分:1)

MainDictionary NSMutableDictionary

plceidkey = @"YOUR_GOOGLE_MAP_PLACE_KEY"; 


NSString *URLString1 = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/details/json?placeid=%@&key=%@", "YOUR_PLACE_ID",plceidkey];

NSURLRequest *request1 = [NSURLRequest requestWithURL:[NSURL
                                                               URLWithString:URLString1]];

NSData *response = [NSURLConnection sendSynchronousRequest:request1
                                                 returningResponse:nil error:nil];
NSError *error;
MainDictionary=[NSJSONSerialization JSONObjectWithData:response options:kNilOptions error:&error];

// here you got address
address1=[[MainDictionary valueForKey:@"result"]valueForKey:@"formatted_address"];

// here got your place name
placename=[[MainDictionary valueForKey:@"result"]valueForKey:@"name"];

// here got latitude of your place       
lat1=[[[[MainDictionary valueForKey:@"result"]valueForKey:@"geometry"] valueForKey:@"location" ]valueForKey:@"lat"];

// here got logitude of your place 
long1=[[[[MainDictionary valueForKey:@"result"]valueForKey:@"geometry"] valueForKey:@"location" ]valueForKey:@"lng"];

如果对此代码有任何疑问,请通知我,我只是帮助您。

快乐编码。