我为符号层设置了两个图标集。我希望一个图标在一个图层未聚簇且触发群集时可见,我想为同一图层显示一个不同的图标。我的问题是单个图标仍在群集图标下方可见,我希望在群集时隐藏单个图标。如何添加此标志?
为显示群集的新图标,我使用:
// Add Source
val options = GeoJsonOptions().withCluster(true).withClusterRadius(30)
val stopSource = GeoJsonSource(sourceId, collection, options)
style.addSource(stopSource)
// Add single layer
val singleLayer = SymbolLayer(singleLayerId, sourceId).apply {
withProperties(
PropertyFactory.iconImage(singleLayerId),
PropertyFactory.iconAllowOverlap(true)
)
}
style.addImage(singleLayerId, singleIcon)
style.addLayer(singleLayer)
// Add cluster layer
val clusterLayer = SymbolLayer(clusterLayerId, sourceId).apply {
setFilter(eq(get("cluster"), true))
withProperties(
PropertyFactory.iconImage(clusterLayerId),
PropertyFactory.iconAllowOverlap(true)
)
}
style.addImage(clusterLayerId, clusterIcon)
style.addLayer(clusterLayer)
这是有效的,但仅适用于群集。单个图标仍然可见。
我纯粹是凭猜测使用标记setFilter(eq(get("cluster"), true))
,因为我查看了具有相同要求的iOS实现,而且该实现似乎可以正常工作。
如果我在单个图层上使用setFilter(eq(get("cluster"), false))
,则该图标完全不可见。
iOS使用标志,如下所示:
单层图标:
layer.predicate = NSPredicate(format: "%K != YES", "cluster")
集群层图标:
layer.predicate = NSPredicate(format: "%K == YES", "cluster")
我希望setFilter
等于的地方,但不起作用。
答案 0 :(得分:0)
我发现了与重叠属性有关的问题。
false
将其设置为{{1}}以供我的单层修复。