Skip to content
alex2wong edited this page May 25, 2016 · 6 revisions

Welcome to the VectorLOD wiki!

整体架构

由于本人对浏览器绘图,渲染空间数据很感兴趣,也曾经造过一些轮子。包括:

  • 基本的canvas绘制html5 fileReader 读取的本地文本文件

  • Javascript 读取shpfile(参考shp.js)并且借助openlayer渲染

  • ...

    由于经常关注矢量数据渲染的问题,希望可以通过JS 实现空间数据的快速简化,最终实现LOD。受到OSM,mapbox以及arcgis 最新vectortile的启发, 考虑采用简化算法在每个层级根据分辨率计算响应的简化 tolerance,进行不同层级的简化,将简化后的地理数据写入本地。实现LOD离线化,只要计算过一遍的LOD文件,在之后的加载中可以直接从本地提取。

    浏览器中实现简化可以提高地图拖动时候的 性能,例如原始多边形图层节点数为5W,经过简化只剩下5k个节点。经过简化后的数据通过post提交到后台存入json文件,按照层级存入对应文件夹。

下图是原始多边形要素,在层级分辨率为10m以下才显示原始数据 原始多边形要素

下图:简化后的要素,在视野范围大,要素多的时候显示以提高性能 简化后的多边形要素


具体实现和记录

具体实现过程,包括前端在线简化,已经实现。现在还需要增加post到后台存储的功能。

静态文件服务器

Serving Static Content 上次用python 的wsgi实现了最简单的静态文件服务器,作为系统的后台。。为啥不采用node呢?因为可能未来一两年我都不会用node,公司没有这个业务需求。。用后台语言去写也是可以。那么现在已经实现了text、以及octet-stream流的文件服务,以及前端简化数据产生的不同层级缓存写入后台。

Clone this wiki locally