Javascript 如何设置在L.canvas渲染器上绘制的传单标记的动画?
我有一个带有标记的传单图表,它扩展了Javascript 如何设置在L.canvas渲染器上绘制的传单标记的动画?,javascript,css,d3.js,canvas,leaflet,Javascript,Css,D3.js,Canvas,Leaflet,我有一个带有标记的传单图表,它扩展了L.CircleMarker类,然后定义了一个用户定义的路径,允许我们在画布上绘制自定义形状。rioV8在这篇精彩的文章中展示了这一点。 我想动画这些标记,如果可能的话请。随附的代码显示了两个标记,一个是脉动的圆圈标记器,另一个是定制的,尽管我希望是静态的 请问可以给那一个设置动画/脉动吗 标题 #地图{ 高度:800px; } .脉搏{ 动画:脉动1s放松; -webkit动画:脉动1s放松; -webkit动画迭代计数:无限; 不透明度:0.0 } @
L.CircleMarker
类,然后定义了一个用户定义的路径,允许我们在画布上绘制自定义形状。rioV8在这篇精彩的文章中展示了这一点。
我想动画这些标记,如果可能的话请。随附的代码显示了两个标记,一个是脉动的圆圈标记器,另一个是定制的,尽管我希望是静态的
请问可以给那一个设置动画/脉动吗
标题
#地图{
高度:800px;
}
.脉搏{
动画:脉动1s放松;
-webkit动画:脉动1s放松;
-webkit动画迭代计数:无限;
不透明度:0.0
}
@关键帧跳动{
0% {
变换:不透明度:1.0;
}
75% {
不透明度:1.0;
}
100% {
变换:不透明度:0.0;
}
}
var uk=[
{
“类型”:“FeatureCollection”,
“特点”:[
{
“类型”:“功能”,
“财产”:{‘城市’:‘巴黎’},
“几何学”:{
“类型”:“点”,
“坐标”:[2.3522,48.8566]
}
},
]
}];
法国var=[
{
“类型”:“FeatureCollection”,
“特点”:[
{
“类型”:“功能”,
“财产”:{‘城市’:‘伦敦’},
“几何学”:{
“类型”:“点”,
“坐标”:[-0.133869,51.510067
]
}
}
]
}];
包括({
_updateMarkerSquare:函数(层){
如果(!this.| | | layer._empty()){
返回;
}
var p=层.\u点,
ctx=这个,
r=数学最大值(数学圆(层半径),5);
此._drawnLayers[层._传单\u id]=层;
ctx.beginPath();
ctx.moveTo(p.x-r,p.y-r);
ctx.lineTo(p.x+r,p.y-r);
ctx.lineTo(p.x+r,p.y+r);
ctx.lineTo(p.x-r,p.y+r);
ctx.lineTo(p.x-r,p.y-r);
ctx.closePath();
这是一个填充冲程(ctx,层);
}
});
var myMarker=L.CircleMarker.extend({
_updatePath:函数(){
if(this.options.shape==“square”)
此._渲染器._更新Markersquare(此);
}
});
var myRenderer=L.canvas({
填充:0.5,
});
var map=L.map(“map”).setView([49.2,0],6)
var myRenderer=L.canvas({
填充:0.5,
});
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png'{
属性:“©;贡献者”
}).addTo(地图);
//创建标记层并将其显示在地图上
ukLayer=L.geoJson(英国{
pointToLayer:功能(特性、latlng){
返回新的myMarker(latlng{
形状:'正方形',
颜色:“红色”,
//交互:错,
渲染器:myRenderer,
类名:“脉冲”
})
}
}).addTo(地图);
franceLayer=L.geoJson(法国{
pointToLayer:功能(特性、latlng){
返回L.circleMarker(车床{
类名:“脉冲”
})
}
}).addTo(地图);
将css类添加到画布层
var myRenderer = L.canvas({
padding: 0.5,
});
//...
L.DomUtil.addClass(myRenderer._container, "pulse");
不错!非常感谢。