gpt4 book ai didi

ios - 在 MapKit 搜索中排除 userLocation

转载 作者:行者123 更新时间:2023-11-29 12:27:48 33 4
gpt4 key购买 nike

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

但是,我遇到的问题之一是,当搜索结果作为 map 上的图钉返回时,我希望缩放结果,不包括 userLocation 图标。

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

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

最佳答案

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

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

顺便说一下,我认为您想在完成对 map 点的迭代之后执行此操作,而不是在每个 map 点之后执行此操作。不过,这意味着您应该在执行此操作之前仔细检查以确保您有一个或多个 map 点。

关于ios - 在 MapKit 搜索中排除 userLocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28571796/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com