在选择开源前端GIS框架的时候,定下来MapBox和Openlayers3。起初被MapBox美观的地图显示效果所吸引,研究后发现其实现机制与MAPZONE GIS SDK相差深远,不如Openlayers3来的实在。
MAPZONE GIS DESK接入Openlayers3主要包括以下几个方面:
1)矢量数据集接入
2)瓦片数据集接入
3)空间参考扩展
4)高级标注效果实现
5)交互封装,实现图形编辑工具
先说矢量数据集接入,我们通过GeoJSON的示例代码(http://openlayers.org/en/latest/examples/geojson.html)了解Openlayers的源代码,确定显示要素绘制是调用ol.source.vector的forEachFeatureInExtent方法,所以我们根据ol.source.vector构建了ol.source.VectorMapZone,重写forEachFeatureInExtent方法,将查询结果转换成Openlayers3的Geometry和Feature,即可实现矢量数据集的接入
重写forEachFeatureInExtent方法
初始化ol.source.VectorMapZone,并做为数据源设置到Openlayers3的layer中
显示效果: