Mac*_*cik 1 html javascript canvas leaflet
我正在使用Leaflet.VectorGrid 插件在 Leaflet 1.0 中绘制通过 geojson-vt 切片的切片。
我想在绘图时为路径添加渐变。我在stackoverflow上找到了沿路径添加渐变的代码,但它需要一个画布。
我的问题是:如何获得对画布或其上下文 ( ctx)的引用以在其上绘制?
这是我添加 tileLayer 的代码:
var tileLayer = L.vectorGrid.slicer(data, {
rendererFactory: L.canvas.tilee,
vectorTileLayerStyles: {
sliced: function(properties, zoom) {
var endColor=70;
// var grad = ctx.createLinearGradient(begin[0], begin[1], end[0], end[1]);
// grad.addColorStop(0, begin[2]);
// grad.addColorStop(1, end[2]);
// ctx.strokeStyle = grad;
return {
stroke: true,
fill: true,
color: endColor < 20? 'red' :
endColor < 50? 'orange' :
endColor < 70? 'yellow' :
endColor < 100? 'green' : 'blue',/
weight: 5,
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
我是 Leaflet.VectorGrid 的创建者。
我的问题是:如何获得对画布或其上下文(ctx)的引用以在其上绘制?
答案是:你没有。Leaflet 代码的结构方式将画布上下文抽象化。这种设计的目标是让用户专注于几何图形而不是渲染,并通过双 SVG 支持提供交叉兼容性。不鼓励使用仅 SVG 或仅画布的功能。
此外, Leaflet.VectorGrid 中的画布继承自L.Canvas. 需要注意的是香草L.Canvas并没有对沿线梯度的支持,所以你应该专注于使用插件,允许对折线梯度,然后才担心如何使矢量砖的工作。
这将涉及了解两个插件如何对 Leaflet 类进行猴子补丁,按什么顺序,以及如何处理类继承。
一旦你理解了这一点,你将不得不担心L.Hotline从L.GeoJSON切片中实例化的s 中实例化 s。
TL;DR:阅读并理解 Leaflet.VectorGrid 和 Leaflet.Hotline 的代码。
| 归档时间: |
|
| 查看次数: |
1591 次 |
| 最近记录: |