2015-10-01 27 views
0

我是iOS新手。我正在使用蘋果的地圖。我需要一些功能像Goole PlaceAutoComplete。如何獲取用戶使用apple的Map輸入的某些字符串的建議地址?

在此之前,我試圖使用PlaceAutoComplete通過pod添加googlePlaces實用程序,並且函數回調甚至沒有響應。我使用googleMap placeAutoComplete工具創建了iOS Api Key。

這裏是我的一段代碼

-(void)placeAutocomplete{ 
    GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; 
     filter.type = kGMSPlacesAutocompleteTypeFilterCity; 
     [self.placesClients autocompleteQuery:self.txtFld.text 
             bounds:nil 
             filter:filter 
            callback:^(NSArray *results,NSError*error) 
     { 
      if (error != nil) { 
       NSLog(@"Autocomplete error %@", [error localizedDescription]); 
       return; 
      } 
      self.autoCompleteArray = results; 
     }]; 
    } 
+0

這是你可以把它做任何谷歌地圖,而不是蘋果地圖。您需要爲文本字段提供自動完成功能。 –

+0

現在我正在使用Google地圖,但同樣是這裏的問題,autocompleteQuery callBack不會被調用。 –

+0

你能展示一些代碼嗎? – TheMall

回答

0

使用搜索欄或使文本框的事件textDidChange

我有這樣做使用下面的代碼

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(requestForGoogleAutoCompletWithTask) object:nil]; 
    [self performSelector:@selector(requestForGoogleAutoCompletWithTask) withObject:nil afterDelay:0.0]; 

} 
-(void)requestForGoogleAutoCompletWithTask 
{ 
    GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc]init]; 
    [filter setType:kGMSPlacesAutocompleteTypeFilterNoFilter]; 

    GMSPlacesClient *placesClient = [GMSPlacesClient sharedClient]; 
    [placesClient autocompleteQuery:sBar.text 
          bounds:nil 
          filter:filter 
          callback:^(NSArray *results, NSError *error) { 
           if (error != nil) { 
            NSLog(@"Autocomplete error %@", [error localizedDescription]); 
            arrAutoCompletData = results; // This is my actual array which I am showing in UITableView 
            [tblView reloadData]; 
            return; 
           } 
           arrAutoCompletData = results; 
           [tblView reloadData]; 
           for (GMSAutocompletePrediction* result in results) 
           { 
            NSLog(@"Result '%@' with placeID %@", result.attributedFullText.string, result.placeID); 
           } 
          }]; 

} 
+0

喲,謝謝。這很容易。 –

+0

但是,當我在UITextField的shouldChangeCharachterInRange中嘗試了這一點時,我開始知道'回調:^'內部代碼從未在我的側面執行過(通過調試點檢查),甚至等待2-3分鐘,執行回調需要時間。 –

+0

請通知我,我正在使用UIMapKit(Apple地圖)。 –

相關問題