使用d3在Leaflet地图上绘制SVG伪影是一种简单的方法,可以将实体地图控制器与d3的强度结合起来.有许多示例和指南,如何实现这一点,两种主要方法似乎是:
在Leaflet的"覆盖窗格"上添加一个新的SVG元素,如Bostock所示:http://bost.ocks.org/mike/leaflet/
实现一个自定义矢量切片图层,该图层挂钩到Leaflets本机切片层生态系统,如Nelson Minar所示:http://bl.ocks.org/NelsonMinar/5624141
第一种方法通过附加传单类来避免Leaflets基于缩放的缩放,以便在缩放发生时隐藏任何d3元素.当缩放动画结束时,重新计算元素坐标并重新绘制,然后删除隐藏类以再次暴露元素.这有效,但与Leaflet的原生GeoJSON图层相比,放大/缩小的体验不那么干净,因为后者支持动画缩放.
第二种方法不包含任何特定于实现的代码来解决缩放行为,但无论如何都以某种方式工作!d3元素在动画缩放期间缩放,然后用下一个缩放级别向量整齐地替换.
我想要实现的是两者的结合.我想绘制基于Geo/TopoJSON的非基于图块的矢量,这些矢量在放大/缩小期间被动画化.我已经摆弄了使用不同的传单css类,不同的事件钩子,以及以多种方式附加和/或重用SVG元素,但还没有实现类似于使用Leaflet的原生GeoJSON向量时所经历的行为的行为层.我不想使用本机层的原因是我想要使用大量其他d3功能,而不是Leaflet实现的一部分.
问题:使用非基于图块的向量组合Leaflet和d3时,是否有人实现了动画缩放?如果是这样 - 怎么样?
是否有任何(方便的)方法可以为 ol3 中的单个矢量(点)特征显示多个图标/图像?例如,我想使用代表这些属性的不同图标来显示一组 POI 的不同属性。
我当然可以为每个 POI 创建多个特征并计算它们之间所需的像素距离,但这会增加开销并且有点尴尬。
我会在以下方面实现一些目标:(黄点是实际的 POI 坐标):

我有一个模糊的记忆,看到打开图层3的示例,其中添加的图层的不透明度可以更改.ol3示例页面上仍然有这样的例子,但它们需要webgl-renderer(它排除了矢量图层).有没有办法用常规画布渲染器更改矢量和/或栅格图层的不透明度?