随着各个行业对GIS的需求量的增大,海量数据的问题越来越突出,反正这个问题今天不解决,以后绝对还会再遇到,这里讨论的海量数据问题主要是在浏览器呈现大量矢量形态的数据,一般要是矢量的数量达到三四百个以上,IE就受不了了,地图的放大平移操作基本上已经惨不忍睹,其实三四百个对于地理信息的海量数据来说,还差着远呢,那怎么办呢?
网上不外乎有一下几种解决方案:
一、根据需要加载数据,就是只加载当前视图范围的数据,这样可以大幅度地减少浏览器的压力,这个的局限性也是很大的,如果我全图显示呢?不过现在已经有了数据抽稀的算法,就是,不仅根据你视图范围的大小加载数据,还会根据视图大小自动计算出适合当前视图大小的数据量,然后进行加载,具体可以参照http://gaganb.wordpress.com/2012/02/15/tile-feature-strategy-in-openlayers/
二、先将你要以矢量方式呈现的数据以图片的形式进行加载,比如你要在地图上展示深圳市上万个加油站的矢量数据,你可以先将它们做成一张图片,然后加载,这个就瞬间将量级降下来了,然后如果你需要实现和这些加油站站点的交互,比如鼠标点击之后出个气泡之类的,再根据鼠标事件去处理,可以参照http://mapbox.com/demo/visiblemap/
三、聚类,如果你在中国范围内搜索收费站的话,那个数据是惊人的,于是可以通过聚类的方式进行显示,比如说将深圳的收费站用一个点显示,将北京的收费站用一个点显示……
这些我也只是知道概念,以后还是要抽时间好好研究研究