1、绘制1000000以上的点,我是通过for循环,遍历map中的数据并绘制,造成屏幕会卡一段时间,如何解决?(我是用线程来做,以便不影响正常的通讯,还有没有其他的办法?) 2、当每次通过鼠标放大、缩小一块区域后,都需要重新遍历map,再绘制一遍,因为我的想法是希望直接放大、缩小位图,但是 对于位图如果放大、缩小后,相应的线也会变粗,所以我只能重新遍历map绘图,有没有其他方法,可以放大、缩小位图不用遍历,而且相应的线正常的粗细? 3、我做的位图操作,只是在屏幕来回切换才调用位图进行粘贴,但是放大、缩小不能来回粘贴,上面的两点已经说明原因,该怎么办? 不知道你的map里是怎么存放数据的,总的感觉你要么程序设计不合理要么数据结构(map里如何存放数据)不合理
在大数据情况下,你必须明确数据序号和屏幕显示范围的对应关系,然后记录一个屏幕左上角的起始点,从起始点开始绘画当前屏幕能够容纳范围的数据,而那些超出屏幕范围的数据不要处理(因为超出了屏幕),这样可以节省非常多的时间
另外,你使用map来存放数据,可能不是一个好的选择,因为map是使用关键字定位数据,不方便建立数据单元和屏幕位置的关系,使用数组可能会好的多 最好使用其他的控件,比如mschart
|