本文目录一览:
Cesium初始化选项
基于cesium开发地图时用到的组件是:new Cesium.Viewer(container, options),container为地图在页面中放置位置的id,options是初始化设置的选项,包括是否显示homeButton,动画组件,时间轴以及底图等。具体开发过程中用到的选项可参考官方api( )
常用的选项如下:
cesium地图瓦片404默认显示某张图片
采用JavaScript的方式来加载图片。
以Cesium默认加载的bingmapstilesystem为例。其地图以一种四叉树的方式进行存储和加载。每当放大地图时,会根据放大层级以及当前区域加载对应子层级的地图图片,在浏览器进行拼接展示。
如果考虑网络不可用的场景,就需要构建本地Maps的服务。比较可行的方案是根据url规则,将需要的地图瓦片数据批量下载到本地服务器,并根据quadkey和TileXY的映射关系配置路由,cesium的地图源的请求改成从本地服务器获取。当前有对应脚本工具对瓦片数据进行批量下载,唯一问题是数据量有些大。中国范围内如果地图缩放支持到16级的卫星地图影像,中国的地图数据有图片约1.17亿张。放大到16级大概是下面效果,地面分辨率2.39m每像素。所以如果使用此方案,需要:首先根据我们实际需要下载对应区域、对应缩放层级的瓦片数据,如国外区域只下载部分层级,国内下载到16级,避免用到的数据占用太大。然后有足够空间、有服务器存放瓦片数据,同时在此服务器上部署Maps服务,并配置好请求路由映射。最后修改cesium对应的配置,改成三维地图图片加载走自己部署的Maps服务器,对应Viewer初始化时候配置imageryProvider参数。
Cesium加载在线地图服务
互联网的地图服务一般有天地图,高德地图,百度地图,ArcGIS地图,OSM地图,这里就给大家一一列举出来如何使用Cesium加载这些在线的地图服务。
天地图服务需要tk,国家地理信息公共服务平台 天地图
百度地图由于切片中心点位于地理坐标的(0, 0)点,所以百度地图的加载需要使用自定义的provider,这里是自定义的provider「链接」
cesium 和 Three.js有什么区别,以及二者与WebGL 的关系
二者都是基于WebGL技术开发的js库
Threejs受众面比较广,是封装了webgl的一些底层用法,让初学者更容易上手;例如绘制一个立方体,使用webgl原生api可能要写50行代码,包括构建坐标点,顶点组织、着色器等信息;在threejs里面可能只要一句代码就可以构建(实际上也是调用webgl原生api),只是做了更大粒度的封装
Cesium受众面相对较小,是Gis相关的,也是基于WebGL开发的,它主要是三维地球相关的js库,可以展示二维地图服务(百度高德)、倾斜摄影模型;还可以在上面做一些三维分析,可以参考