2017-02-03 3 views
1

Я реализую , используя автоматическое завершение. Я действительно получаю идентификатор места, теперь, используя идентификатор места, я хочу найти координату местоположения для этого места. GMSPlace не возвращает геометрию. Я искал, но не получил никакой помощи.Как получить координаты места для места с помощью API Google Адресов?

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); 
    }]; 
} 
+0

shiw ur попытался код –

+0

код в комментарии @ Anbu.Karthik – kishan

+0

@kishan проверить мой ответ, это поможет вам. –

ответ

1

Я думаю, вы можете получить информацию о месте, используя место идентификатора, как этого

NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; 

[_placesClient lookUpPlaceID:placeID callback:^(GMSPlace *place, NSError *error) { 
    if (error != nil) { 
    NSLog(@"Place Details error %@", [error localizedDescription]); 
    return; 
    } 

    if (place != nil) { 
    NSLog(@"Place name %@", place.name); 
    NSLog(@"Place address %@", place.formattedAddress); 
    NSLog(@"Place placeID %@", place.placeID); 
    NSLog(@"Place attributions %@", place.attributions); 
    } else { 
    NSLog(@"No place details for %@", placeID); 
    } 
}]; 

ссылка: here

1

Если у вас есть место идентификатор можно найти координату с помощью этого URL. Это даст вам подробную информацию о вашем месте.

https://maps.googleapis.com/maps/api/place/details/json?input=bar&placeid=PLACE_ID&key=API_KEY 
1

Вы можете получить место детали с местом ид. проверьте это Dock. Этот вызов вернет GMSPlace. GSMPlace имеют координату свойства.

+0

Да, это отображается в документе, но координаты не возвращаются. – kishan

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"]; 

Если какой-либо запрос об этом коде, то сообщите мне, я просто помочь вам.

Счастливое кодирование.

Смежные вопросы