高性能地图优化策略
1 优化案例
1.1 初始条件
l 数据
矢量数据:以北京市范例数据,需要特别关注居民地图层,记录数176509条。
l 计算机配置
CPU : Intel Core 2 Duo 2.2GHz
2级缓存:4M
内存:2G DDR2
显卡:FX570 512M
1.2 优化步骤
1.2.1 设置地图过滤显示
在新建地图之后,地图属性中就已经默认设置了文本过滤显示。过滤对象尺寸设置默认值,因为需要显示的数据中没有小而碎的数据。
1.2.2 设置图层显示比例
数据在入库之后添加几个图层配置地图,在没有进行任何优化之前,我们测试地图的显示性能。(时间单位:毫秒)
图层名称 |
查询时间 |
绘图时间 |
总时间 |
记录数目 |
居民地R@北京 |
224.076 |
2598.695 |
2822.771 |
176509 |
铁路L@北京 |
11.853 |
395.790 |
407.643 |
667 |
面区界R@北京 |
14.275 |
17.798 |
32.073 |
18 |
国道L@北京 |
5.454 |
2.297 |
7.751 |
16 |
省道L@北京 |
2.929 |
1.099 |
4.028 |
88 |
平均 |
51.718 |
603.136 |
654.853 |
35459.600 |
总计 |
258.588 |
3015.680 |
3274.267 |
177298 |
表4-1 地图初始状态
图4-1 地图初始状态
在全副状态下,居民地图层记录数最多,有176509条,查询时间比较高超过了200ms,绘图时间很长,那么说明这个比例尺下不适合显示。通过可见比例的设置之后,图层显示更具层次感,同时性能有明显提升。
全副的状态下配置了区域面的单值专题图,测试刷新时间结果如下:
图层名称 |
查询时间 |
绘图时间 |
总时间 |
记录数目 |
面区界R@北京 |
12.507 |
18.662 |
31.170 |
18 |
界线@北京 |
8.004 |
10.789 |
18.793 |
77 |
国道L@北京 |
6.167 |
2.405 |
8.572 |
16 |
平均 |
8.893 |
10.619 |
19.512 |
37.000 |
总计 |
26.679 |
31.856 |
58.535 |
111 |
表4-2 设置显示比例后的全幅效果
1.2.3 重采样
在上一步的基础上进行放大,在第二级比例尺中,发现铁路线数据的绘图时间比较长。
图层名称 |
查询时间 |
绘图时间 |
总时间 |
记录数目 |
铁路L@北京 |
8.851 |
280.330 |
289.181 |
667 |
面区界R@北京 |
164.139 |
22.187 |
186 |