leaflet属于比较轻量的地图框架,并且只是二维的,如果需要展示三维,请使用cesium之类的。
本次使用leaflet-elevation插件,功能强大,比leaflet.elevation好。
涉及的知识点有:
- 选择图元,获得图元的属性,见我上一篇文章。
- 获得的多段线属性,主要是坐标,是二维对象,要转成二维数组。
- 将二维数组转成turf的linestring:var profileline = turf.lineString(linearr);
- 多段线上分割成多个点,方便获得较多的高程点。var along = turf.lineChunk(profileline, length / 100, options);
- 循环这些分割点,用Topography.getTopography取得该坐标点的高程。这里涉及比较多的知识点,主要是terrainRGB……见我前面的文章
- 将这个geojson数据load装载到leaflet-elevation:controlElevation.load(JSON.stringify(collection));