如何在可见地图矩形中选择特定类的注释

发布于 2024-11-09 12:58:48 字数 412 浏览 2 评论 0原文

我正在尝试实现下面的方法,该方法基本上使用当前地图矩形中可见的注释填充我的数组。

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
    self.LocationSet = [self.mapView annotationsInMapRect:self.mapView.visibleMapRect];

    self.LocationArray = [self.nearbyCarParksSet allObjects];

}

仅选择我想要包含在集合/数组中的某一类注释的正确方法是什么?例如,在当前地图视图中,我可能有属于“餐厅”类、“停车场”类、“加油站”类等的注释,而我只想存储属于“餐厅”类的注释。最好的方法是什么?

I am trying to implement the method below which basically populates my array with the annotations visible in the current map rect.

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
    self.LocationSet = [self.mapView annotationsInMapRect:self.mapView.visibleMapRect];

    self.LocationArray = [self.nearbyCarParksSet allObjects];

}

What is the right way to select only a certain class of annotations which I want to include in the set/array? For example, in the current map view I might have annotations belonging to a "Restaurant" class, a "carpark" class, a "petrol station" class, etc., and I only want to store annotations belonging to the "Restaurant" class. What is the best approach?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫瑟鸿黎 2024-11-16 12:58:48

假设 locationSet 具有从上述方法中的第一次调用派生的所有注释。您可以使用以下方式获取所有类型的注释:

restaurantSet = [locationSet objectsPassingTest:^(id obj, BOOL *stop){
    return [obj isMemberOfClass:[YourAnnotationSubclass class]];
}];

Assuming that locationSet has all the annotation derived from the first call in the method above. You can get all annotations of type using,

restaurantSet = [locationSet objectsPassingTest:^(id obj, BOOL *stop){
    return [obj isMemberOfClass:[YourAnnotationSubclass class]];
}];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文