绘制步骤 最后更新时间: 2021年01月22日
JS API v1.4.5版本开始,提供在3D视图模式下创建和添加三维立体图形的能力,这些立体图形包括网格(Mesh)类型、线类型、点类型等。绘制3D立体图形的一般步骤为:
开启3D视图
在创建地图实例的时候给 Map
添加 viewMode:'3D'
属性,JS API 将根据前端的 WebGL 环境来判断能否开启3D视图。
var map = new AMap.Map('container',{
viewMode:'3D'
})
设置光照属性
目前楼块图层、室内图层、和 MeshAcceptLights
、Prism
几个类型会接收地图全局的光照属性。目前 Map
的光照属性有两个,一个环境光源 AmbientLight
,一个平行光源 DirectionLight
。默认情况下环境光源为白色光,强度0.9,平行光源方向由南方45度角照射,白色光,强度0.1。如不能满足需求可以按照如下代码进行设置:
map.AmbientLight = new AMap.Lights.AmbientLight([1, 1, 1], 0.9);
map.DirectionLight = new AMap.Lights.DirectionLight([0, -1, 1], [1, 1, 1], 0.1);
添加Object3DLayer
Object3DLayer
为专门承载 Object3D
对象的图层,一个 Object3DLayer
可以承载多个Object3D
实例对象,绘制 Object3D
对象前先给地图添加一个 Object3DLayer
图层:
var object3Dlayer = new AMap.Object3DLayer();
map.add(object3Dlayer);
创建Object3D类型的实例
这里简单创建一个Prism
对象,Object3D
各种类型的详细说明请参考其他章节。
添加Object3D实例到Object3DLayer
再将Object3D
实例添加在上面添加的Object3DLayer
之中就可以了
object3Dlayer.add(prism);//添加
//object3Dlayer.remove(prism);//移除