leaflet - Mapbox GL - 用于非聚类和活动功能的过渡动画
问题描述
在 Mapbox GL JS 中,我希望使用集群 + 为当前定义为“活动”的一项功能使用不同的图标。我希望对必要的过渡(去集群+活动功能的更改)进行动画处理,但找不到让这一切发生的方法。
Mapbox 提供了一个示例,展示了如何实现集群,它为集群和非集群特征使用不同的层。此技术还可用于在其自己的层中使用不同的图像渲染“活动”特征。当一个集群分解(“非集群”)为特征时,它基本上会从集群层中移除,而这些特征会被添加到“非集群”特征层中。但这不允许添加过渡动画,因为这里并没有真正的过渡。我想展示集群拆分为特征,每个特征都移动到各自的位置。
任何想法如何解决这个问题?
一些不能提供完整答案的想法:
使用带有markercluster 插件的 Leaflet及其“蜘蛛”行为进行聚类。这很有效,并提供了一个很好的“蜘蛛”过渡动画来进行聚类。然而,传单和 Mapbox GL 之间没有“官方”绑定,所以我不愿意使用它(我需要修改这个,它基于未记录的 Mapbox 内部)。此外,我现在确定这在性能方面是好是坏,具有数千个功能。而且我从经验中知道,添加动画来修改传单标记的形状(用于活动/非活动过渡)并没有真正起作用。
在 Mapbox 中使用标记,而不是图层,但是如何进行任何类型的聚类?
解决方案
我想不出任何合理的方法来仅使用 Mapbox GL JS 来实现这一点,缺少学习 WebGL 和实现自定义源。
但我不会取消 Leaflet+Mapbox 方法——根据我的经验,性能还可以(尽管我没有测试过集群或你想要做的事情)。
OpenLayers 也有类似的方法:https ://openlayers.org/en/latest/examples/mapbox-layer.html我也使用过它并且效果很好。
最后,似乎有很多 Leaflet 和 OpenLayers 库专门解决了动画聚类问题:https ://gis.stackexchange.com/questions/17250/how-to-create-animated-cluster-markers-in-openlayers -leaflet(而且这些答案中的大多数都非常古老,所以现在可能有更多的库)。
推荐阅读
- java - 使用 Spring Boot 进行自定义异常处理时 .jpg 出现 500 错误?
- java - 在 TestNG 中跳过测试的最佳做法是什么?
- c++ - 是否可以禁止在 for 循环体内修改循环变量?
- json - 如何设置状态 http url?
- android - Kotlin 隐藏替换的片段不起作用
- python - 两个点层之间的距离矩阵
- android - 导航组件隐式深层链接不适用于 res 字符串
- html - 如何使背景图像缩放到平行 div 的高度?
- memory - 如何有效地覆盖 GPU 上的内存区域?
- python-3.x - 如何为 unix 打包/冻结 python 代码?