在选择开源前端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方法

MAPZONE GIS SDK接入Openlayers3之一——矢量数据集接入-LMLPHP

初始化ol.source.VectorMapZone,并做为数据源设置到Openlayers3的layer中

MAPZONE GIS SDK接入Openlayers3之一——矢量数据集接入-LMLPHP

显示效果:

MAPZONE GIS SDK接入Openlayers3之一——矢量数据集接入-LMLPHP

05-17 11:04