我在使用heatmap.js插件的应用程序中有一个奇怪的错误,我不确定问题出在我的代码、传单或插件中。
我正在动态创建新的热图。所以我想擦除旧的并跟踪一个新的,这应该是 heatmpa.js 的默认行为。令人惊讶的是,在我缩小或放大之前,它不会删除旧的。
这里有一些图片可以理解发生了什么:
第 1 步:单击一个按钮以在巴黎周围绘制热图:
结果:正如预期的那样,巴黎周围的热图。
第二步:点击按钮绘制东部热图: 结果:添加了第二张热图,但没有删除巴黎附近的热图。(错误)
第 3 步:点击加号图标放大地图 结果:按预期缩放,巴黎周边的热图消失。
这是 setData 函数 heatmap-leaflet 的代码,它替换数据并调用重绘:
setData: function ( dataset )
{
var self = this;
var latLngs = [];
this._maxValue = 0;
dataset.forEach( function ( d )
{
latLngs.push( new L.LatLng( d.lat, d.lon ) );
self._maxValue = Math.max( self._maxValue, d.value );
} );
this._bounds = new L.LatLngBounds( latLngs );
this._quad = new QuadTree( this._boundsToQuery( this._bounds ), false, 6, 6 );
dataset.forEach( function ( d )
{
self._quad.insert( {
x: d.lon,
y: d.lat,
value: d.value
} );
} );
this.redraw();
}
我的问题
我将不胜感激有关如何定位问题的任何建议。有污点就更好了。