矢量地图是通过对点线面坐标信息集合的管理和渲染实现优于栅格画面质量的一种gis展示技术,涉及不同坐标系变换,视窗比例尺换算等。当你遇到海量坐标数据和属性信息需要管理时你就不得不在有限内存和庞大数据间左右为难,将地图矢量数据进行分块处理就势在必行,目前比较成熟了地图引擎均引入了这一技术,对于开源的gis则以mapbox开源的矢量瓦片技术最为流行,他借助栅格图分块的概念将矢量地图数据切割成一块一块的tile 每个tile都有自己的x y z坐标可以通过计算公式算出gps定位坐标当前处于那个zoomlevel下的那个tile中,使地图数据分块定位非常是捷,我们目前看到的webgis多采用mapbox开源的渲染引擎从postgis中获取当前视窗tile的pbf文件,然后对pbf文件进行解析渲染,但是其渲染引擎设计复杂,功能强大,要定制绝非易事。所以自已从底层开始设计一套轻量级的矢量瓦片地图引擎在某吐特定场景非常有必要,比如嵌入式应用。
mapbox以及qgis spatialite geos等开源软件仍然是开发引擎的良师益友有些组件可以直接拿来用,可以大大减少开发的难度并提高效率。
Gis引擎开发是一个综合性要求比较高的任务,可以从简单开始,尽量自己实现比较底层的功能,这样自己在把控整个项目时就不会力有未逮,开源框架虽好但不能贪杯,一定要做自己能把控的事,不要盲目引入太多框架以至后期失控导致项目进退两难。