ios - 如何对 CEMarkerGroup 中的所有 CEMarker 执行操作

标签 ios citymaps

我已经根据我的数据设置了 CEMarkerGroup,并成功显示了它们。根据 Citymaps 的 documentation , 它们表示以下内容:

USING A MARKER GROUP Marker groups allow you to organize your markers and perform functions on all markers in the group simultaneously, and also perform certain operations which you would need to implement yourself otherwise.

但是,似乎没有任何公开的类或实例方法允许对特定组执行操作。下面,我设置了代码

CEMarkerGroup *grpCondo  = [self.mapView markerGroupWithName:@"grpCondo"];
CEMarkerGroup *grpRental = [self.mapView markerGroupWithName:@"grpRental"];
CEMarkerGroup *grpCoOp   = [self.mapView markerGroupWithName:@"grpCoOp"];
CEMarkerGroup *grpCondop = [self.mapView markerGroupWithName:@"grpCondop"];

稍后,当我遍历要添加的标记列表时,我根据类别 (cat) 值指定组。

if ([cat isEqualToString:@"Condo"]) {
    [grpCondo  addMarker:marker];
}
if ([cat isEqualToString:@"Condop"]) {
    [grpCondop addMarker:marker];
}
if ([cat isEqualToString:@"Rental Unit"]) {
    [grpRental addMarker:marker];
}
if ([cat isEqualToString:@"Co-op"]) {
    [grpCoOp   addMarker:marker];
}

这些已经与我的 map 对象相关联的组显示正常,但我找不到任何方法来对这些单独的组进行操作(例如,隐藏组、显示组等) 有什么想法吗?

谢谢!

最佳答案

我是 Citymaps 的一名开发人员。

CEMarkerGroup 相当简单,在大多数情况下只是一种组织对象所在位置的方法。 我们现在对标记组进行的唯一批处理操作是从 map 中删除该组中的所有标记。我们还有碰撞检测功能,我在您的另一篇文章中看到了这一点。

如果您想对组中的每个 CEMarker 执行某些操作,CEMarkerGroup 确实提供对其标记的只读访问。

编辑:为了回答您的评论,这里有一个代码示例,说明如何在标记组中切换标记。

    // This would be your toggled value
    BOOL showRentals = YES;
    for(CEMarker *rentalMarker in grpRental.markers) {
        // This property is not yet exposed. This would have the marker automatically fade in or out based on fadeTime.
        //rentalMarker.hidden = !showRentals;

        // You can use this as a proof of concept
        rentalMarker.alpha = showRentals ? 1.f : 0.f;
    }

关于ios - 如何对 CEMarkerGroup 中的所有 CEMarker 执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29862312/

相关文章:

ios - City Maps SDK 标记类的 faceTime 代表什么?

iOS:AutoresizingMask 未调整大小以适应屏幕上的 map 或 View

iphone - 使用 ASIhttprequest 下载图像并显示本地保存的文件中的图像

ios - 界面构建器不允许添加表格 View 单元格

ios - react native Ios 错误 'failed to load bundle'

iphone - 从 NSString 中删除除 + - 运算符之外的所有特殊字符

ios - 无法设置 CEMarker 的碰撞优先级