首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在userLocation搜索中排除MapKit

在userLocation搜索中排除MapKit
EN

Stack Overflow用户
提问于 2015-02-17 21:51:25
回答 1查看 92关注 0票数 1

我在Xcode 6中使用MapKit,到目前为止,我编写的所有代码都运行良好。我有一个文本字段,允许用户输入任何字符串来搜索苹果地图。

然而,我的问题之一是,当搜索结果作为引脚返回到地图上时,我希望缩放只适合结果,不包括userLocation图标。

这是我到目前为止的代码。(我看到了类似的代码,向添加行的更新包括 userLocation,但是他们说不应该包含userLocation的代码非常类似于我已经拥有的代码.)

代码语言:javascript
复制
        if (response.mapItems.count == 0)
            NSLog(@"No results");
        else
            for (MKMapItem *item in response.mapItems)
            {


                MKMapRect mr = [self.mapView visibleMapRect];
                MKMapPoint pt = MKMapPointForCoordinate([annotation coordinate]);
                mr.origin.x = pt.x - mr.size.width *0.5; // 0.5
                mr.origin.y = pt.y - mr.size.width * 0.75; //0.75
                [self.mapView setVisibleMapRect:mr animated:YES];

                MKMapRect zoomRect = MKMapRectNull;
                for (id <MKAnnotation> annotation in _mapView.annotations)
                {
                    MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
                    MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 10.4, 10.4);
                    zoomRect = MKMapRectUnion(zoomRect, pointRect);
                }
                [_mapView setVisibleMapRect:zoomRect animated:YES];
            }
    }];
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-17 22:44:44

只需检查以确保注释不是MKUserLocation对象:

代码语言:javascript
复制
MKMapRect zoomRect = MKMapRectNull;
for (id <MKAnnotation> annotation in _mapView.annotations) {
    if (![annotation isKindOfClass:[MKUserLocation class]]) {
        MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
        MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 10.4, 10.4);
        zoomRect = MKMapRectUnion(zoomRect, pointRect);
    }
}
[_mapView setVisibleMapRect:zoomRect animated:YES];

顺便说一句,我认为你想在完成地图点的迭代之后,而不是在每一次迭代之后,才能做到这一点。尽管如此,这意味着您应该再次检查,以确保您有一个或多个地图点,然后才这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28571796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档