三维地图前端js api对比分析

三维前端渲染的技术已经很成熟了,可使用的商业、开源的js api也很多,很多时候,三维地形数据的展示效果、效率不尽如人意,原因和难点不在于前端,而在于后台数据的质量和数据的组织方式,还有硬件的配置。

以下简单盘点一下市面上比较常用的三维地图前端js api吧。

一、单项简述

1.高德、百度、天地图

目前国内的图商,高德、百度、腾讯都不支持实际意义上的三维渲染,支持的只是影像地球或2.5D。

例如百度的卫星地球:

http://lbsyun.baidu.com/jsdemo.htm#webgl0_2

pic_e907ebe5.png

高德的2.5维视图:

https://lbs.amap.com/api/javascript-api/example/3d/map3d

pic_380fd192.png

天地图理论上集成了cesium,实现基于影像和地形的三维服务,但从效果上看,并没有鸟瞰下地形起伏的效果,也只是个影像地球。

http://lbs.tianditu.gov.cn/docs/#/sanwei/

pic_627c571f.png

之前写过一个教程,三维地图之cesium加载天地图(有代码):

https://blog.csdn.net/sinat_41310868/article/details/109233234

2.谷歌

虽然在国内,我们使用不了大部分谷歌的产品,但拥有Google earth的谷歌,仍然具有最好的三维地形数据平台和渲染技术。

https://developers.google.com/maps/documentation/javascript/examples/elevation-simple

pic_5958fde4.png

谷歌地球引擎,google earth engine虽然主要是做地理空间数据分析的,但也支持三维数据的渲染。

https://developers.google.com/earth-engine/tutorials/tutorial_api_02

pic_dbff59e5.png

3.cesiumjs

Cesium官网访问起来有点慢,https://cesium.com/。

Cesium不仅仅是一个前端js api,它更是一个三维地理空间平台,如果会写代码的话,可以使用js api构建三维地形地图页面,如果不会写代码的话,cesium更支持无代码构建三维地形地图应用。

Cesium代码开源,除此之外,它也提供有偿的解决方案。

pic_5aa117a9.png

之前写过一些cesium的应用。

三维地图之cesium入门使用:https://blog.csdn.net/sinat_41310868/article/details/107924145

Cesium平台构建诗词地图故事:https://blog.csdn.net/sinat_41310868/article/details/107967539

Cesium开发学习路径:https://blog.csdn.net/sinat_41310868/article/details/107993244

4.threejs

Threejs官网:https://threejs.org/

Threejs支持地形渲染:https://threejs.org/examples/#webgl_geometry_terrain

QGIS有个插件,Qgis2threejs,支持将三维地形地图数据转成threejs的html页面:https://blog.csdn.net/sinat_41310868/article/details/112299752

pic_5afea4da.png

5.mapbox

大而全的mapbox当然支持三维地形地图的渲染。

https://docs.mapbox.com/mapbox-gl-js/example/add-terrain/

pic_391f05be.png

6.arcgis和supermap

涉及到商业平台产品,就不能简简单单说前端还是后端了,是一整套解决方案。

Arcgis js 三维示例:

https://developers.arcgis.com/javascript/latest/sample-code/layers-custom-elevation-exaggerated/

pic_f45dfe3b.png

Supermap的三维做的还不错,示例很丰富:

http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#terrainAndImagery

pic_e1fcee9e.png

二、对比

做三维,百度、高德、腾讯,肯定是不行。

天地图虽然代码不行,但天地图提供地形数据、影像数据的wms图层:http://lbs.tianditu.gov.cn/server/MapService.html

谷歌地球还是业内王者,但国内访问不了,只能对数据进行缓存,就像奥维互动地图一样,但奥维互动地图也因为使用谷歌地图,被约谈整改了,不太清楚是法律法规的问题,还是版权问题。

Cesium、three、mapbox,单从前端角度看,cesium示例最多,最易于学习,mapbox最全面,我如果一直用mapbox,我就接着用它做三维,three的好处是跟QGIS结合,不写代码直接导出html文件。

Arcgis和supermap这两个平台,如果之前没有接触过GIS平台,那么supermap无疑上手快,操作界面、资料文档都是中文的,但如果一直用arcgis,那就接着用arcgis。

三、总结

应该使用哪个前端,需根据项目需求和个人偏好来选择,没有最好的,只有最合适的。

三维数据渲染展示的效率、效果,技术问题通常都不在于前端,而在于后台数据的质量和数据的组织方式,还有硬件设备的配置。

三维会是未来的一个发展趋势。

原文地址:https://www.cnblogs.com/hustshu/p/14629711.html