【问题标题】:How to search addresses in MKMap using MKLocalSearch如何使用 MKLocalSearch 在 MKMap 中搜索地址
【发布时间】:2014-12-06 14:54:28
【问题描述】:

我正在尝试使用 MKLocalSearch 搜索地址,但它只提供业务而不是确切地址,例如地图(Apple 的应用程序)。

我希望你们能帮助我 - 谢谢! :)

MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = query;
request.region = self.mapView.region;

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
self.localSearch = [[MKLocalSearch alloc] initWithRequest:request];

[self.localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    if (error != nil) {
        [[[UIAlertView alloc] initWithTitle:@"Map Error"
                                    message:[error description]
                                   delegate:nil
                          cancelButtonTitle:@"OK"
                          otherButtonTitles:nil] show];
        return;
    }

    self.results = response;

`

【问题讨论】:

    标签: search mkmapview uisearchdisplaycontroller mklocalsearch


    【解决方案1】:

    在您的 MKMapItem 类型的结果数组中,您需要配置单元格以在 tableView 出现时为您提供地址。这是一个简单的例子。

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    
        let IDENTIFIER = "CellID"
        let cell = tableView.dequeueReusableCellWithIdentifier(IDENTIFIER, forIndexPath: indexPath) as! UITableViewCell
    
        // Configure the cell...
        var item: MKMapItem = results[indexPath.row]
    
        cell.textLabel?.text = item.placemark.name
        cell.detailTextLabel?.text = item.placemark.addressDictionary["Street"] as? String
    
        return cell
    }
    

    这一切都在属于 UITableViewDataSource 协议的 cellForRowAtIndexPath 方法中完成。

    希望对您有所帮助,祝您好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多