如何解决Carto Mobile:如何避免点与相关气球弹出窗口的聚类
我们在 Android 应用程序中使用 Carto Mobile SDK 来显示带有 POI 对象的地图。可能有很多这样的对象,所以我们使用聚类来避免在较低缩放级别的地图上出现混乱。到目前为止一切顺利。
每个 POI 都可以有一个标签,我们使用带有文本的气球弹出窗口。由于此弹出窗口使用 POI 点几何来定义其位置,因此它看起来像一个聚类到一个聚类矢量图层,除非我放大到最大级别,否则我无法在地图中分别看到 POI 和标签。它立即成为 2 个对象的集群。 我找不到有关如何避免相关对象聚类的任何相关信息。有人能解释一下这个问题吗?
编辑:
private suspend fun MapLayerData.createPointPoi(
layer: MapLayer,projection: Projection,pictogramSetIconsDao: PictogramSetIconsDao
): List<VectorElement> {
val elements = mutablelistof<VectorElement>()
getPoiPictogram(layer.dataPictogramSetId,icon,pictogramSetIconsDao)?.let { pictogram ->
Point(
projection.fromLatLong(vertices.first().lat,vertices.first().lng),PointStyleBuilder().also {
it.bitmap = pictogram
}.buildStyle()
)
}?.let { point ->
elements.add(point)
if (text.isNotBlank()) {
elements.add(createText(point.geometry,text))
}
}
return elements
}
fun createText(location: Geometry,text: String) = BalloonPopup(
location,BalloonPopupStyleBuilder().buildStyle(),text,""
)
从 createPointPoi()
方法返回的所有元素都添加到 poiPointsLayer
中,如下所示:
private val poiClusterElementBuilder = DefaultClusterElementBuilder(
res,res.drawable(R.drawable.poi_cluster,theme)
)
private val poiPointsLayer = ClusteredVectorLayer(poiPointsDataSource,poiClusterElementBuilder)
实际上,我现在正在尝试使用气球弹出窗口,但最初我们使用的是文本,因为通过为文本添加底部边距,我们能够将其显示在象形图上方而不是其上方。但结果 - 将这两个对象合并为一个集群 - 完全相同。
当然,我们可以将这些标签类型的对象从聚类层移到一个单独的矢量图层,但这样我们就会在地图上的聚类象形图上有很多标签。像这样的东西:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。