3D地图 最后更新时间: 2021年01月22日
这里列出所有目前已经开放的和3D地图相关的类型或者新增属性,方面各位开发者查阅:
类名 | 说明 |
---|---|
这里仅列出和3D相关的属性,其他Map属性请查阅 | |
用于设置地图的环境光源,目前仅会作用于 | |
用于设置地图的平行光照,目前仅会作用于 | |
图层类,用于添加所有 | |
用于创建三维Mesh的基础类型,支持纹理,需要自己构建 | |
用于创建支持宽度和高度的3D线段 | |
用于创建接受光照的三维Mesh的基础类型,接受光照、支持纹理,需要自己构建 | |
基于Mesh封装的创建棱柱的简单类型,接受光照、不支持纹理,不再需要自己构建 只需要传入经纬度路径和颜色即可 | |
用于创建三维线条的基础类型,支持纹理,不支持宽度,需要自己构建 | |
基于Line封装的创建细线的简单类型,不支持宽度和纹理,不再需要自己构建 只需要传入经纬度的路径和颜色即可 | |
用于创建三维点阵的基础类型,支持纹理,需要自己构建 | |
基于Points继承出来的用于创建三维圆点的基础类型,支持纹理,不支持宽度,需要自己构建 |
AMap.Map
Map类中和3D相关的属性如下
属性名 | 类型 | 说明 |
---|---|---|
|
| 在MapOptions中设置,可选值有'3D'、'2D',缺省为'2D', 设置为3D时将在webgl环境满足条件的的浏览器中显示为三维地图 |
|
| 在MapOptions中设置地图的倾角,0-83 |
|
| 在MapOptions中设置地图的最大倾角 |
|
| 在MapOptions中设置地图的旋转角度 |
| 用于设置地图的默认环境光源,仅会作用于MeshAcceptLights和Prism和室内地图, 需在Map初始化之后设置,如
| |
| 用于设置地图的平行光源,仅会作用于MeshAcceptLights和Prism和室内地图, 需在Map初始化之后设置,如:
|
方法名 | 返回值 | 说明 |
---|---|---|
|
| 获取当前地图的实际视图模式,地图显示为3D是返回'3D',否则返会'2D' |
|
| 用于拾取,获取多个Object3DLayer中处于屏幕某个位置下的的Object3D对象或集合。
|
|
| 将经纬度转换为三维坐标系下的xy坐标 |
|
| 将三维坐标系下的xy坐标转换为经纬度 |
AMap.Lights.AmbientLight
描述一个环境光源,用于为地图设置环境光。
构造函数 | 参数说明 |
---|---|
|
如:
|
方法名 | 返回值 | 说明 |
---|---|---|
| 修改光照的颜色。color用来描述光照的颜色,为一个三个元素的数组, 每个元素代表RGB的三个分量,每个分量的取值范围[0,1]; | |
| 修改光照的强度,intensity用来描述光照强度,取值范围[0,1]; |
以上方法调用后,请调用Object3DLayer实例的reDraw方法使生效。
AMap.Lights.DirectionLight
描述一个环境光源,用于为地图设置平行光照。
构造函数 | 参数说明 |
---|---|
|
如:
描述了一个从正南方斜向下照射的一道平行光 |
方法名 | 返回值 | 说明 |
---|---|---|
| 修改光照的颜色。color用来描述光照的颜色,为一个三个元素的数组, 每个元素代表RGB的三个分量,每个分量的取值范围[0,1]; | |
| 修改光照的强度,intensity用来描述光照强度,取值范围[0,1]; | |
| 修改光照的照射方向 |
以上方法调用后,请调用Object3DLayer实例的reDraw方法使生效。
AMap.Object3DLayer
用于承载Object3D对象的图层,继承了一般图层的通用属性和属性的set get
方法,比如:map
、zIndex
、opacity
等
构造函数 | 说明 |
---|---|
| 创建一个Object3DLayer,opts可包含图层的通用属性,比如: |
属性名 | 说明 |
---|---|
| 用于获取该图层内的所有Object3D对象,只读,请勿修改 |
方法名 | 返回值 | 说明 |
---|---|---|
| 添加一个Object3D实例到图层 | |
| 从图层删除一个Object3D实例 | |
| 清楚所有Object3D实例 | |
| 重绘,在修改了Object3D实例的数据属性,或者地图的光照信息之后调用,可使变更生效。 |
AMap.Object3D.Mesh
描述一个三维Mesh对象,支持纹理,查看示例
构造函数 | 说明 |
---|---|
| 创建一个Mesh对象 |
属性名 | 类型 | 说明 |
---|---|---|
|
| 描述mesh的几何信息的对象,只读,修改其属性来描述mesh的几何信息 |
|
| 给Mesh设置纹理贴图,数组中可以放入图片url和canvas对象,宽高需要为 2的n次方 乘 2的m次方 |
|
| 当修改了geometry信息或者textures之后设置为true,同时调用本实例的reDraw方法使修改生效 |
|
| 表示是否使用了透明颜色,并进行颜色混合 |
|
| 表示绘制当前对象时是否需要开启深度检测 |
MeshGeometry的属性 | 类型 | 说明 |
---|---|---|
|
| 一维数据,每三个元素描述一个顶点的xyz信息,只可修改元素,不可直接赋值 |
|
| 一维数据,每四个元素描述一个顶点颜色的RGBA分量信息,所有分量取值范围[0,1], 只可修改元素的值,不可直接赋值 |
|
| 一维数据,每两个元素描述一个顶点的纹理坐标信息,纹理坐标以图片左上角为原点。 只可修改元素,不可直接赋值 |
|
| 一维数据,每三个元素描述一个面的信息,每个元素分别为构成面的顶点的索引值, 如不想使用ELEMENT_ARRAY_BUFFER方式,可不设值,此时其他数组按面依次设值即可 只可修改元素,不可直接赋值 |
|
| 一维数据,每个元素描述一个顶点的纹理索引信息,多纹理时使用,取值范围[0-7]。 单纹理或者无纹理时不需要设值。只可修改元素,不可直接赋值 |
方法 | 说明 |
---|---|
| 当修改了geometry信息或者textures之后设置needUpdate为true,同时调用该方法使修改生效 |
AMap.Object3D.MeshLine
基于路径、宽度和高度构建MeshLine, 从v1.4.6开始支持。 查看示例
构造函数 | 说明 |
---|---|
| 创建MeshLine对象,opts是Prism的构造参数 |
构造参数 | 类型 | 说明 |
---|---|---|
|
| 设置meshline的路径,path是一个AMap.LngLat的数组 |
|
| 设置meshline的宽度,单位是像素,默认值是2 |
|
| 设置meshline路径上各点的高度,height有两种类型:
默认值0 |
|
| 设置meshline的颜色,支持RGBA, HEX 和 英文颜色名称(如 'blue', 'green') |
方法 | 返回值 | 说明 |
---|---|---|
| 修改meshline的path,参数说明和构造参数表格中一致 | |
| 修改meshline的width,参数说明和构造参数表格中一致 | |
| 修改meshline的height,参数说明和构造参数表格中一致 | |
| 修改meshline的color,参数说明和构造参数表格中一致 |
AMap.Object3D.MeshAcceptLights
描述一个接受光照的Mesh对象,支持纹理。继承Mesh的所有属性和方法,查看示例。其geometry特有的属性字段如下
MeshGeometry的属性 | 类型 | 说明 |
---|---|---|
|
| 一维数据,每三个元素描述一个顶点法向量的xyz信息,只可修改元素,不可直接赋值 |
AMap.Object3D.Prism
使用MeshAcceptLights封装的棱柱类型,可使用路径和高度快速构建Mesh,支持光照,不支持纹理,查看示例
构造函数 | 说明 |
---|---|
| 创建MeshLine对象,opts是Prism的构造参数 |
示例代码
var bounds = [
[//大圈
new AMap.LngLat(116,39),
new AMap.LngLat(117,39),
new AMap.LngLat(117,40),
new AMap.LngLat(116,40)
],
[//洞1
new AMap.LngLat(116.5,39.25),
new AMap.LngLat(116.75,39.5),
new AMap.LngLat(116.5,39.75),
new AMap.LngLat(116.25,39.5)
],
[//洞2
new AMap.LngLat(116.75,39.75),
new AMap.LngLat(116.9,39.5),
new AMap.LngLat(116.9,39.75)
],
[//岛1
new AMap.LngLat(117.5,39.25),
new AMap.LngLat(117.75,39.5),
new AMap.LngLat(117.5,39.75),
new AMap.LngLat(117.25,39.5)
],[//岛2
new AMap.LngLat(118.5,39.25),
new AMap.LngLat(118.75,39.5),
new AMap.LngLat(118.5,39.75),
new AMap.LngLat(118.25,39.5)
]
]
// var lnglatToG20 = function(lnglats) {
// for (var i = 0; i < lnglats.length; i += 1) {
// var g20 = map.lngLatToGeodeticCoord(lnglats[i]);
// lnglats[i] = g20
// }
// return lnglats;
// }
// for (var i = 0; i < bounds.length; i += 1) {
// bounds[i] = lnglatToG20(bounds[i]);
// }
var height = 300000;
var color = [0,0,1,0.9];
var prism = new AMap.Object3D.Prism({
path:bounds,
height:height,
color:color
});
AMap.Object3D.Line
细线,不支持宽度
构造函数 | 说明 |
---|---|
| 创建一个Mesh对象 |
属性名 | 类型 | 说明 |
---|---|---|
|
| 描述 |
|
| 给Line设置纹理贴图,数组中可以放入图片url和canvas对象,宽高需要为 2的n次方 乘 2的m次方 |
|
| 当修改了 |
|
| 表示是否使用了透明颜色,并进行颜色混合 |
|
| 表示绘制当前对象时是否需要开启深度检测 |
LineGeometry的属性 | 类型 | 说明 |
---|---|---|
|
| 一维数据,每三个元素描述一个顶点的xyz信息,只可修改元素,不可直接赋值 |
|
| 一维数据,每四个元素描述一个顶点颜色的RGBA分量信息,所有分量取值范围[0,1], 只可修改元素的值,不可直接赋值 |
|
| 一维数据,每两个元素描述一个顶点的纹理坐标信息,纹理坐标以图片左上角为原点。 只可修改元素,不可直接赋值 |
|
| 一维数据,每两个个元素描述一个线段的信息,每个元素分别为构成面的顶点的索引值, 如不想使用 只可修改元素,不可直接赋值 |
|
| 一维数据,每个元素描述一个顶点的纹理索引信息,多纹理时使用,取值范围[0-7]。 单纹理或者无纹理时不需要设值。只可修改元素,不可直接赋值 |
AMap.Object3D.ThinLine
细线,不支持宽度,基于AMap.Object3D.Line
构造函数 | 说明 |
---|---|
| 创建一个Mesh对象 |
ThinLineOptions字段 | 类型 | 说明 |
---|---|---|
|
| 经纬度数组 |
|
| 符合 |
AMap.Object3D.Points
点阵,用于创建一堆点,基于webgl的POINT图元绘制
构造函数 | 说明 |
---|---|
| 创建一个Points对象,可展示一组方点 |
属性名 | 类型 | 说明 |
---|---|---|
|
| 描述 |
|
| 给点设置纹理贴图,数组中可以放入图片url和canvas对象,宽高需要为 2的n次方 乘 2的m次方 |
|
| 当修改了 |
|
| 表示是否使用了透明颜色,并进行颜色混合 |
|
| 表示绘制当前对象时是否需要开启深度检测 |
|
| 点的边框颜色,诸如 |
|
| 点的边框宽度,单位px |
PointsGeometry的属性 | 类型 | 说明 |
---|---|---|
|
| 一维数组,每三个元素描述一个顶点的xyz信息,只可修改元素,不可直接赋值 |
|
| 一维数组,每四个元素描述一个顶点颜色的RGBA分量信息,所有分量取值范围[0,1], 只可修改元素的值,不可直接赋值 |
|
| 一维数组,每一个元素描述一个点的大小 |
|
| 一维数组,每四个元素描述一个点的有效区域,纹理、颜色、边框等样式将仅在此有效区域内生效 四个元素分别代表left、top、width、height与Size的比值,取值范围[0,1] 不设置的时候有效区域为整个点的正方形范围。 |
|
| 一维数组,每四个元素描述一个圆点有效区域的左上角和右下角的纹理坐标信息 |
|
| 一维数组,每个元素描述一个点的纹理索引信息,多纹理时使用,取值范围[0-7]。 单纹理或者无纹理时不需要设值。只可修改元素,不可直接赋值 |
AMap.Object3D.RoundPoints
点阵,用于创建一堆圆点,基于webgl的POINT图元绘制
构造函数 | 说明 |
---|---|
| 创建一个RoundPoints对象,可展示一组圆点 |
属性名 | 类型 | 说明 |
---|---|---|
|
| 描述 |
|
| 给点设置纹理贴图,数组中可以放入图片url和canvas对象,宽高需要为 2的n次方 乘 2的m次方 |
|
| 当修改了 |
|
| 表示是否使用了透明颜色,并进行颜色混合 |
|
| 表示绘制当前对象时是否需要开启深度检测 |
|
| 点的边框颜色,诸如 |
|
| 点的边框宽度,单位px |
PointsGeometry的属性 | 类型 | 说明 |
---|---|---|
|
| 一维数组,每三个元素描述一个顶点的xyz信息,只可修改元素,不可直接赋值 |
|
| 一维数组,每四个元素描述一个顶点颜色的RGBA分量信息,所有分量取值范围[0,1], 只可修改元素的值,不可直接赋值 |
|
| 一维数组,每一个元素描述一个点的大小 |
|
| 一维数组,每四个元素描述一个圆点的左上角和右下角的纹理坐标信息 |
|
| 一维数组,每个元素描述一个点的纹理索引信息,多纹理时使用,取值范围[0-7]。 单纹理或者无纹理时不需要设值。只可修改元素,不可直接赋值 |