我在尝试向画布渲染图层添加大量点时使用Leaflet时出现问题。
我使用类似下面的代码创建+85.000点:
首先我用我的所有点加载一个四叉树,一个点是一个带有其他特定东西的类,但是关于传单的东西,我们有以下代码:
var myCanvasRenderer = L.canvas({ paneName });
var geojsonMarkerOptions = { fillColor: "#AFC5CA", color: "#000", weight: 1, opacity: 1, fillOpacity: 0.8, stroke: false, renderer: myCanvasRenderer, pane: paneName }
point.circle = L.circle(latlng, 0.5, myHandler.geojsonMarkerOptions);
然后将该点添加到四叉树中。 移动地图时,我处理事件以在视口内绘制点,绘制点本身,调用以下方法:
circle.addTo(myLayer);
我将绘图限制在20.000点。达到此限制时停止进程并使用console.Time
测量时间使用circle.addTo调用,该过程大约需要80秒来绘制20.000点。 在评论该电话时,该过程大约需要8秒钟来抽取" 20.000分。 ("画"因为不是真的画了)
如何加快积分的绘制? 是否有类似于" bulkAdd"传单库中的方法?
提前感谢您的帮助
答案 0 :(得分:1)
可能发生的事情是您的圈子实际上并未在指定的画布上绘制。
您可以使用浏览器DOM检查器进行检查。
在Leaflet 1.x.x中,Circle的半径指定为L.circle([50.5, 30.5], {radius: 200}).addTo(map);
选项,而不是第二个参数:
0.5
因此,在您的代码中,第二个参数myHandler.geojsonMarkerOptions
无效,您的第三个参数(def main():
check = MinecraftQuery('10.0.10.8', 25565)
# It calls the __init__() method and constructs an object/instance of the class named 'MinecraftQuery'
# using the given arguments and associate it with the given identifier 'check'
check.get_status()
# Now, this invokes the get_status() method of the instance named 'check'.
print check
)也没有效果,导致您不使用画布。