我已经根据我的数据设置了CEMarkerGroup,并成功地显示了它们。根据Citymaps的文档,它们指出:
使用标记组标记组允许您同时组织标记并对组中的所有标记执行功能,还可以执行某些操作,否则需要自己实现。
但是,似乎没有任何公开的类或实例方法允许对特定组进行操作。下面,我设置了代码
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];
}这些已经与我的地图对象相关联的组显示得很好,但是我找不到任何方法来处理这些单独的组(例如,隐藏一个组,显示一个组,等等)。外面有什么想法吗?
谢谢!
发布于 2015-04-27 00:41:30
我是Citymaps的开发人员。
CEMarkerGroup相当空旷,而且大多数情况下只是组织对象所在位置的一种方式。我们现在对标记组的唯一批处理操作是从地图中删除该组中的所有标记。我们也有碰撞检测功能,我看到你的另一篇文章。
如果您希望对组中的每个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;
}https://stackoverflow.com/questions/29862312
复制相似问题