图层的容器和控制器
Loca 的核心控制类,可以控制光源、视角变换、图层渲染等。
(LocaOptions)
默认的 loca 参数
Name | Description |
---|---|
opts.map AMap
(default null )
|
loca 的地图容器,必填项。 |
(ViewControl?)
: 地图的视角控制器,支持连续的视角动画过渡控制。详细说明看ViewConTrol说明。
(Aniamte?)
: 帧控制器,控制地图渲染。和loca一起初始化,不需要使用者创建。
对于一些支持动画效果的图层(比如Scatter、PulseLine),需要使用animate启动动画。
// 创建地图
var map = new AMap.Map('map', {
showLabel: false,
viewMode: '3D',
pitch: 50,
zoom: 12, //初始化地图层级
center: [121.496534, 31.243335] //初始化地图中心点
});
// 创建loca
var loca = new Loca.Container({
map: map,
});
// 设置光源(老版用法),已废弃,不推荐使用
loca.ambLight = {...};
loca.dirLight = {...};
loca.pointLight = {...};
// 设置光源(推荐用法),支持添加多个光源
// 环境光
new Loca.AmbientLight({
intensity: 0.8, // 环境光强度,建议值: 0~1
color: '#fff', // 环境光颜色
}, loca);
// 平行光
new Loca.DirectionalLight({
intensity: 0.5, // 光照强度,建议值: 0~1
color: 'rgb(255,255,255)', // 平行光颜色
target: [0, 0, 0], // 光射向的目标位置
position: [0, -1, 1], // 坐标位置
}, loca);
// 点光
new Loca.PointLight({
color: 'rgb(255,255,255)', // 点光颜色
position: [121.50741577148439, 31.236288641793006, 1000], // 点光的位置
intensity: 4, // 光照强度
// 距离表示从光源到光照强度为 0 的位置,0 就是光不会消失。
distance: 10000,
}, loca);
// 创建各种图层
todo: ...
// 帧的启动和停止代表地图在每一帧是否会触发渲染,如果你想拥有图层动画、镜头动画等动画效果,需要启动帧。
// 它会占用一部分 GPU 资源,但是一般来说可以忽略不计。
// 启动帧
loca.animate.start();
// 暂停帧
loca.animate.pause();
// 停止帧
loca.animate.stop();
get属性,获取所有光源对象
Array<(AmbientLight | DirectionalLight | PointLight)>
:
主动触发地图渲染
将一个图层添加到地图上
(Layer
= null
)
图层
将一个图层从地图上移除
(Layer
= null
)
图层
清空所有图层,包括图层的光源
获取控件的 dom 容器
添加光源
((AmbientLight | DirectionalLight | PointLight))
光源对象
删除单个光源
((AmbientLight | DirectionalLight | PointLight))
光源对象
清空所有光源
销毁 Loca 实例,如果希望同时销毁 map,那么需要先销毁 Loca 实例,然后销毁 Map 实例。
环境光,对于可以接受光照的图层(PolygonLayer 等)会增加环境光的影响。环境光只能有一个,多余的会被忽略。
(AmbientLightProperty)
Name | Description |
---|---|
opts.color String
(default undefined )
|
环境光颜色 |
opts.intensity Number
(default undefined )
|
环境光强度 |
(Loca)
可选,如果传入将自动添加光源到loca
const ambLight = new Loca.AmbientLight({
intensity: 0.8, // 环境光强度,建议值: 0~1
color: '#fff', // 环境光颜色
});
// 通过 loca.addLight 添加环境光(环境光只能有一个,多余的会被忽略)
loca.addLight(ambLight)
// 通过 loca.removeLight 移除环境光
loca.removeLight(ambLight)
平行光,对于可以接受光照的图层(PolygonLayer 等)会增加平行光的影响。平行光一般用来模拟太阳的光照。 它的方向由 position 射向 target。position和target的坐标是一个位置加 z 值(单位米)高度决定。比如: [1, 1, 1000] 代表x:1, y:1, 高度1000米。 如果模拟一个从正南方向的平行光,可以设置target: [0,0,0], position: [0,-1,0]
(DirectionalLightProperty)
Name | Description |
---|---|
opts.color String
(default undefined )
|
平行光颜色 |
opts.intensity Number
(default undefined )
|
光照强度 |
opts.position Array<Number>
(default undefined )
|
坐标位置 |
opts.target Array<Number>
(default undefined )
|
光射向的目标位置 |
(Loca)
可选,如果传入将自动添加光源到loca
const dirLight = new Loca.DirectionalLight({
intensity: 0.5, // 光照强度,建议值: 0~1
color: 'rgb(255,255,255)', // 平行光颜色
target: [0, 0, 0], // 光射向的目标位置
position: [0, -1, 1], // 坐标位置
});
// 通过 loca.addLight 添加平行光
loca.addLight(dirLight)
// 通过 loca.removeLight 移除平行光
loca.removeLight(dirLight)
点光,对于可以接受光照的图层(PolygonLayer 等)会增加点光的影响。点光源通常用来突出展示场景中的某些物体。 它的位置和平行光不太一样,x和y是地图上的经纬度位置,z是高度米,比如北京上空一万米的位置放一个点光源:position: [116.39079, 39.90624, 10000]。 光照的distance代表光能照射的最远距离是多少。
(PointLightProperty)
Name | Description |
---|---|
opts.color String
(default undefined )
|
点光颜色 |
opts.intensity Number
(default undefined )
|
光照强度 |
opts.position Array<Number>
(default undefined )
|
点光的位置 |
opts.distance Number
(default undefined )
|
距离表示从光源到光照强度为 0 的位置,0 就是光不会消失。 |
(Loca)
可选,如果传入将自动添加光源到loca
const pointLight = new Loca.PointLight({
color: 'rgb(255,255,255)', // 点光颜色
position: [121.50741577148439, 31.236288641793006, 1000], // 点光的位置
intensity: 4, // 光照强度
// 距离表示从光源到光照强度为 0 的位置,0 就是光不会消失。
distance: 10000,
});
// 通过 loca.addLight 添加点光
loca.addLight(pointLight)
// 通过 loca.removeLight 移除点光
loca.removeLight(pointLight)
视角控制器。不需要使用者主动创建。它的实例和 loca 一起初始化,会在 loca.viewControl 属性上挂载,如果使用的话,请直接使用 loca 实例上的 viewControl 属性。
loca.viewControl.addAnimates({}, () => {
// 动画结束后的回调,可以继续添加下一个动画转场
loca.viewControl.addAnimates(...)
});
添加自定义的镜头动画,如果传入了多个镜头动画配置,那么动画会按次序依次执行。 timing 时间字段和 control 控制点代表的贝塞尔曲线参考:https://cubic-bezier.com
(Array<AnimateConfig>?)
动画配置数组,动画会依次执行。支持地图中心点、俯仰角、旋转角、地图缩放等级四个状态的动画控制。
(Function?)
所有动画结束的回调函数。
loca.viewControl.addAnimates([{
// 地图中心点动画
center: {
value: [106, 28], // 动画终点的经纬度
control: [[113, 45.5], [107, 36.5]], // 过渡中的轨迹控制点,地图上的经纬度
timing: [0.42, 0, 0.4, 1], // 动画时间控制点
duration: 2000, // 过渡时间,毫秒(ms)
},
// 俯仰角动画
pitch: {
value: 40, // 动画终点的俯仰角度
control: [[0.3, 25], [0.4, 40]], // 控制器,x是0~1的起始区间,y是pitch值
timing: [0, 0, 1, 1], // 这个值是线性过渡
duration: 2000,
},
// 缩放等级动画
zoom: {
value: 5.8, // 动画终点的地图缩放等级
control: [[0.4, 5.7], [0.6, 5.7]], // 控制器,x是0~1的起始区间,y是zoom值
timing: [0.42, 0, 0.4, 1],
duration: 2000,
},
// 旋转动画
rotation: {
value: 30, // 动画终点的地图旋转角度
control: [[0.4, 10], [0.6, 40]], // 控制器,x是0~1的起始区间,y是rotation值
timing: [0.42, 0, 0.4, 1],
duration: 2000,
}
}], () => {
// 动画执行结束
});
添加一个镜头轨迹动画,镜头会按照指定的路径进行追踪
(any)
轨迹配置
(any)
动画完成的回调函数
loca.viewControl.addTrackAnimate({
duration: 2000, // 完成时间,毫秒
timing: [[0, 0], [1, 1]], // 动画速度控制器,使用贝塞尔曲线控制 [详细请看](https://cubic-bezier.com)
path: [[lng, lat], [lng, lat], [lng, lat]...],
rotationSpeed: 90, // 在拐弯处每秒旋转多少度
}, function() {
// 动画完成的回调函数
});
清除所有动画
loca.viewControl.clearAnimates();
暂停所有动画
loca.viewControl.pauseAnimate();
恢复暂停的动画,当调用过 pauseAnimate() 方法暂停动画播放之后,用此方法来恢复动画的继续播放。
loca.viewControl.resumeAnimate();
图层的数据源
geojson 格式的数据源,一个数据源可以给多个图层同时提供数据。一个geojson数据源可以同时拥有点、线、面的数据类型,每个图层绘制的时候会自动获取 合适的数据类型进行渲染。 关于 geojson 格式的数据说明可以访问:https://geojson.org/ 查看。
(GeoJSONSourceOpts)
参数
Name | Description |
---|---|
opts.data GeoJSON
(default {} )
|
数据对象。如果你不想使用 url 方式请求数据,可以直接填写请求好的 geojson 对象。 |
opts.url String
(default '' )
|
数据源的链接地址,一般是接口地址,返回的数据必须是 geojson 格式。 |
var geoSource = new Loca.GeoJSONSource({
// data: {// geojson 对象},
url: './example.geojson',
})
销毁数据源对象
protocol-buffers(PBF) 格式的数据源,能够大幅压缩数据体积,有效减少数据传输时间。
目前仅支持基于 mapbox/geobuf 的 GeoJSON PBF 实现。
(GeoBufferSourceOpts)
参数
Name | Description |
---|---|
opts.data ArrayBuffer
(default null )
|
数据对象。如果你不想使用 url 方式请求数据,可以直接填写请求好的 ArrayBuffer 数据。 |
opts.url String
(default '' )
|
数据源的链接地址,一般是接口地址,返回的数据必须是 PBF 格式。 |
var geoSource = new Loca.GeoBufferSource({
// data: ArrayBuffer,
url: './example.pbf',
})
销毁数据源对象
可视化图层相关控件
基础图例,可以表达颜色和数值或者种类的映射关系。
(LegendOptions)
图例参数
Name | Description |
---|---|
opts.loca Loca
(default null )
|
有此参数, 默认会把图例添加到loca上 |
opts.title Title
(default {...} )
|
图例的标题和样式 |
opts.title.label String
(default "图例" )
|
标题名 |
opts.title.fontSize String
(default "20px" )
|
标题文字大小 |
opts.title.fontColor String
(default "#fff" )
|
标题文字颜色 |
opts.title.fontWeight String
(default "bold" )
|
标题文字粗细 |
opts.title.padding String
(default "0 0 5px 0" )
|
标题内填充 |
opts.title.margin String
(default 0 )
|
标题外边距 |
opts.style Style
(default {...} )
|
图例的样式 |
opts.style.backgroundColor String
(default "rgba(0,0,0,0.7)" )
|
图例的背景颜色 |
opts.style.fontSize String
(default "14px" )
|
图例的文字大小 |
opts.style.fontColor String
(default "#fff" )
|
图例的文字颜色 |
opts.style.borderRadius String
(default "0px" )
|
图例的背板边角圆弧半径 |
opts.style.position String
(default "absolute" )
|
图例的相对定位 |
opts.style.top String?
|
图例的顶部定位 |
opts.style.bottom String?
|
图例的底部定位 |
opts.style.left String?
|
图例的左边定位 |
opts.style.right String?
|
图例的右边定位 |
opts.style.padding String
(default "10px 15px" )
|
图例的内填充 |
opts.dataMap Array
(default [...] )
|
图例的值和颜色信息,label 代表显示的文本,color 代表色块图例。 |
var lengend = new Loca.Legend({
loca: loca,
title: {
label: '图例',
fontColor: '#fff',
fontSize: '20px',
fontWeight: 'bold',
padding: '0 0 5px 0',
margin: 0,
},
style: {
backgroundColor: 'rgba(0,0,0,0.7)',
fontSize: '14px',
size: '16px',
fontColor: '#fff',
borderRadius: 0,
position: 'absolute',
left: '20px',
bottom: '20px',
padding: '10px 15px',
},
dataMap: [
{ label: '第一个', color: '#feedde' },
{ label: '第二个', color: '#fdbe85' },
{ label: '第三个', color: '#fd8d3c' },
{ label: '第四个', color: '#e6550d' },
{ label: '第五个', color: '#a63603' },
],
});
设置图例样式
(Style
= {style:{},title:{}}
)
样式参数,可以修改 title 和 style 的属性,格式和 LegendOptions 一样。
将图例添加到地图上
(Loca
= null
)
loca对象
将图例从地图上移除
基础图层类型
基础图层类,是一个抽象类,是其他图层的基础。有通用的方法和参数。
设置图层的 opacity 透明度,将会影响整个涂层的透明度信息。
(Number
= 1
)
透明度
设置图层的 zIndex 渲染循序,有的兔兔如果主动开启了深度检测:depth: true,那么深度可能将会影响显示顺序。
(Number
= 10
)
图层层级
从地图上移除图层
销毁图层,此操作会先调用 remove 从地图上移除,然后释放内存资源。
设置图层支持的动画属性。比如面图层支持高度和海拔(height、altitude)生长动画、圆点和图标图层支持半径(radius)动画、热力图支持半径和高度(radius、height)动画。 具体每个图层支持的动画属性请查阅每个图层对应的样式文档。 动画曲线详细:https://redmed.github.io/chito/example/easing.html
(AnimateConfig)
动画的配置
Name | Description |
---|---|
config.key String
|
动画的属性 key |
config.value Array<Number>
|
动画的过渡值,范围是[0~1]之间,1 代表真实设定的值 |
config.duration Number
|
动画时长,单位毫秒 |
config.easing String
|
动画过渡函数,详情请看: https://redmed.github.io/chito/example/easing.html |
config.startAt Number
|
一个动画 duration 中,从哪个时间开始动画 |
config.yoyo Boolean
|
是否开启来回摆动 |
config.random Boolean
|
是否开启随机执行动画,如果开启,图层中每个要素的动画开始的时间将随机延时,适合每个数据不同时间出现的效果 |
config.delay Number
|
随机动画延迟的时间段,每个要素的随机延迟将会在 delay 时间段内取值,单位毫秒,random为 true 时生效 |
config.transform Number
|
随机动画的动画执行时间,单位毫秒,random为 true 时生效 |
(Function)
动画结束的回调函数
l.addAnimate({
key: 'height', // 动画的属性 key
value: [0, 1], // 动画的过渡值,范围是[0~1]之间,1 代表真实设定的值。
duration: 2000, // 动画时长,单位毫秒
easing: 'CircularOut', // 动画过渡函数,详情请看:https://redmed.github.io/chito/example/easing.html
// startAt: 0, // 一个动画 duration 中,从哪个时间开始动画
// yoyo: false, // 是否开启来回摆动
// repeat: 1, // 动画重复次数,如果开启 yoyo 模式,那么 repeat 必须大于 1
// random: true, // 是否开启随机执行动画,如果开启,图层中每个要素的动画开始的时间将随机延时,适合每个数据不同时间出现的效果
// delay: 5000, // 随机动画延迟的时间段,每个要素的随机延迟将会在 delay 时间段内取值,单位毫秒,random为 true 时生效
// transform: 1000, // 随机动画的动画执行时间,单位毫秒,random为 true 时生效
}, function(){});
给图层设置数据源,支持 geojson 和 geobuffer 两种类型的数据源
((GeoJSONSource | GeoBufferSource))
给图层设置的数据源,需要预先创建数据源实例
圆点图层,拥有描边的原点,可以支持边缘模糊特效。 支持对每个圆点的半径、颜色、描边信息单独设置。
(LayerOptions)
默认的图层参数
Name | Description |
---|---|
opts.zIndex Number
(default 120 )
|
图层显示层级 |
opts.visible Boolean
(default true )
|
图层是否可见 |
opts.zooms [Number, Number]
(default [2,20] )
|
图层缩放等级范围 |
opts.opacity Number
(default 1 )
|
图层整体透明度 |
opts.blend String
(default 'normal' )
|
图层里面元素的叠加效果,normal:正常透明度叠加,lighter:叠加后可能更加明亮 |
var layer = new Loca.PointLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
blend: 'lighter', // 叠加高亮
})
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(PointStyle)
Name | Description |
---|---|
options.radius (Number | Function)
(default 20 )
|
半径(默认单位: px)。支持动画过渡效果。 |
options.color (Number | Function)
(default '#fff' )
|
填充色,支持回调设置不同的颜色(Hex颜色) |
options.unit String
(default 'px' )
|
点的单位,会影响半径和边宽度。可选值:px:像素,meter:地理单位米 |
options.borderWidth (Number | Function)
(default 10 )
|
边框宽度(默认单位:px) |
options.borderColor (String | Function)
(default '#fff' )
|
边框填充色,支持回调设置不同的颜色 |
options.blurWidth (Number | Function)
(default -1 )
|
模糊半径,从哪个位置开始向边缘模糊。负数代表不进行模糊。 |
layer.setStyle({
radius: 20,
blurWidth: 10,
});
图标图层
var layer = new Loca.IconLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
})
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(IconStyle)
Name | Description |
---|---|
options.unit String
(default 'px' )
|
iconSize 的单位,可以是 'px' 和 'meter',meter 是实际地理的米,px 是屏幕像素。 |
options.icon (String | Function)?
|
图标资源,接受三种值(Svg,Image,Url),可通过回调函数对每个点进行设置 |
options.iconSize (Array | Function)
(default [20,20] )
|
图标大小,影响宽高。支持动画过渡效果,动画 key 字段名称为 iconSize。 |
options.rotation (Number | Function)
(default 0 )
|
图标的旋转角度,可以通过回调为每个点设置不同的旋转角(单位:角度) |
options.opacity (Number | Function)
(default 1 )
|
透明度,支持通过回调函数为每个点设置不同的透明度 |
options.offset ([Number, Number] | Function)
(default [0,0] )
|
图标偏移的位置大小。右上方为正方向。单位取决于 unit 的值。 |
layer.setStyle({
icon: 'https://a.amap.com/test_cms/static/kwt/yinhang3.png',
iconSize: [20, 20],
rotation: 90,
opacity: 0.8,
unit: 'px', // 像素单位
offset: [10, 10], // 向右上方偏移 10 像素
});
标注图层,使用Loca数据源渲染JSAPI的标注图层(AMap.LabelsLayer)
(LayerOptions)
默认的图层参数
Name | Description |
---|---|
opts.zIndex Number
(default 120 )
|
图层显示层级 |
opts.visible Boolean
(default true )
|
图层是否可见 |
opts.zooms [Number, Number]
(default [2,20] )
|
图层缩放等级范围 |
opts.opacity Number
(default 1 )
|
图层整体透明度 |
opts.collision Boolean
(default true )
|
标注是否避让 |
opts.allowCollision Boolean
(default true )
|
标注是否允许其它标注层对它避让 |
var layer = new Loca.LabelsLayer({
loca: loca,
zooms: [2, 20],
zIndex: 120,
visible: true,
collision: true,
allowCollision: true,
})
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
layer.setStyle({
text: {
content: (index, feat) => feat.properties.name,
},
});
获取标注层是否支持内部标注避让
设置标注层是否支持内部标注避让
(any)
获取标注层是否允许其它层标注避让
设置标注层是否允许其它层标注避让,开启该功能可实现地图标注对 LabelMarker 的避让
(any)
棱柱图层,使用点类型数据表达带有高度的立体棱柱,使用高度、颜色、半径等样式表达点数据的不同维度属性信息。支持动画、光照效果。
(LayerOptions)
默认的图层参数
Name | Description |
---|---|
opts.zIndex Number
(default 120 )
|
图层显示层级 |
opts.visible Boolean
(default true )
|
图层是否可见 |
opts.zooms [Number, Number]
(default [2,20] )
|
图层缩放等级范围 |
opts.opacity Number
(default 1 )
|
图层整体透明度 |
opts.cullface String
(default 'back' )
|
剔除背面/前面的面(选择剔除将会提升性能),可选:back/front/none,back是剔除背面的面,front是剔除前面的面,none是不进行剔除。 |
opts.acceptLight Boolean
(default true )
|
面是否接受光照,光照信息在 loca 对象中配置 |
opts.shininess Number
(default 30 )
|
立体网格的粗糙度,值越高,说明表面越粗糙。 |
opts.hasSide Boolean
(default true )
|
当面有厚度的时候,有没有侧面和底面 |
opts.depth Boolean
(default true )
|
是否开启深度检测,开启后可能会影响zIndex |
opts.labelsLayerOptions Object
(default undefined )
|
文字标注图层配置,配置同 AMap.LabelsLayer |
var layer = new Loca.PrismLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
acceptLight: true,
visible: true,
})
获取图层标注的AMap.LabelsLayer
any
:
AMap.LabelsLayer实例
设置图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(PrismStyle)
Name | Description |
---|---|
options.radius (Number | Function)
(default 20 )
|
半径(默认单位: px)。支持动画过渡效果。 |
options.unit String
(default 'px' )
|
图层的单位。可选值:px:像素,meter:地理单位米 |
options.sideNumber Number
(default 3 )
|
棱柱的边数,默认是 3,如果希望做成圆柱体效果,可以尝试此字段设置一个较大的值,例如:32。 |
options.rotation (String | Function)
(default 0 )
|
每个棱柱的旋转角度,取值范围 0 ~ 360;可以支持动画效果。 |
options.altitude Number
(default 0 )
|
海拔高度,代表棱柱的离地高度。单位是 unit 的值。支持动画过渡效果。 |
options.height (Number | Function)
(default 100 )
|
棱柱的高度。单位是 unit 的值。支持动画过渡效果。 |
options.topColor (String | Function)
(default '#fff' )
|
棱柱的顶面颜色值。 |
options.sideTopColor (String | Function)
(default '#fff' )
|
棱柱的侧面顶部颜色值。 |
options.sideBottomColor (String | Function)
(default '#fff' )
|
棱柱的侧面底部颜色值。 |
options.label (Object | Function)
(default undefined )
|
棱柱中心位置的文字标注,配置同 AMap.LabelMarker |
options.labelAltitude (Number | Function)
(default 0 )
|
文字标注相对于顶面的海拔高度。单位是 unit 的值。 |
layer.setStyle({
radius: 20,
sideNumber: 4,
sideBottomColor: function(){
return 'rgba(255,255,0,0.5)';
},
// 文字标注配置
label: {
text: {
content: (index, feat) => feat.properties.name
}
},
});
垂直于大地表面的 Marker 图层,支持传入自定义 DOM 进行绘制。你可以使用它展示一些 和数据相关的文字、图片信息,而且它还支持永远朝向屏幕的特性,非常适合对文字类信息的展示。
var layer = new Loca.ZMarkerLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
})
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(IconStyle)
Name | Description |
---|---|
options.unit String
(default 'px' )
|
size 的单位,可以是 'px' 和 'meter',meter 是实际地理的米,px 是屏幕像素。 |
options.content (String | Function)?
|
Marker 的内容,是一个 HTML 的片段字符串,可以通过 dom 的 style 设置 dom 样式, 并且支持 img 等各种类型的 dom,可通过回调函数对每个点进行设置。目前此类型尚不支持 IE 浏览器。 |
options.size (Array | Function)
(default [20,20] )
|
Marker 大小,影响宽高。 |
options.rotation (Number | Function)
(default 0 )
|
Marker 的旋转角度,以正北方向为起点,顺时的针角度。可以通过回调为每个点设置不同的旋转角(单位:角度) |
options.alwaysFront Boolean
(default false )
|
是否让每个 Marker 总是朝向视角方向。 |
options.altitude (Number | Function)
(default 0 )
|
每个 Marker 的海拔高度,单位是米,可以通过函数回调对每个 Marker 设置不同的海拔。当然,如果你的坐标数据中有第三维度的海拔值秒啊么他将会自动获取坐标中的值。 |
layer.setStyle({
content: function(index, feat) {
return '<div><p style="color: #0ff; font-size: 30px;">' + feat.properties.name + '</p></div>'
},
size: [20, 20],
rotation: 90,
unit: 'px', // 像素单位
alwaysFront: true, // 总是面向屏幕
autitude: 100, // 海拔高度
});
线图层,支持设置描边和虚线。
var lineLayer = new Loca.LineLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
opacity: 1,
});
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(LineStyle)
Name | Description |
---|---|
options.color (String | Function)
|
线的颜色 |
options.lineWidth (String | Function)
|
线的宽度 |
options.borderColor (String | Function)
|
线的描边颜色 |
options.borderWidth (String | Function)
|
线的描边宽度 |
options.dash ([Number, Number, Number, Number] | Function)
|
线的虚线配置信息:[实线长度, 虚线长度, 实线长度, 虚线长度]; |
options.altitude (Number | Function)
|
海拔高度,优先级低于数据中的高度信息。单位:米 |
lineLayer.setStyle({
// 除了 color 属性,其他的缺省属性将恢复默认值。
color: 'rgba(255,255,255,0.7)',
});
链接线图层
var linkLayer = new Loca.LinkLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
opacity: 1,
})
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(LinkStyle)
Name | Description |
---|---|
options.lineColors (Array | Function)
|
链接线颜色。 类型为Array时,可设置颜色渐变,color[0]为起始色,color[color.lenth-1]为终止色,中间为过渡色; 类型为Function时,返回每根线的颜色。参数为(index,item),item为一个对象{link,distance},link为该条线的初始信息。返回结果为Array(渐变)。 |
options.height (Number | Function)
|
高度,单位为米,代表弧顶的最高高度。 类型为Function时,返回每根线的高度。参数为(index,item),item中有distance属性,代表两点间的距离(米),可以用该属性处理高度。 |
options.smoothSteps (Number | Function)
|
平滑步数,代表弧线的分隔段数,越大平滑度越好,默认为100。 |
linkLayer.setStyle({
// 除了 color 属性,其他的缺省属性将恢复默认值。
color: 'rgba(255,255,255,0.7)',
});
面图层,支持多边形、复杂多边形、带洞多边形的绘制。支持底面海拔高度和面的厚度效果。 并且还支持对每个多边形设置不同的个性化样式,而且性能依然很好。 我们还对重复设置图层样式进行了性能优化,保证在某些频繁切换面样式的情况下依然流畅。 当你的希望你的面有透明度效果,并且面和面直接有高度的压盖关系时,我们对渲染效果进行了优化。 能让你看到清晰的透明面! 注意:在侧面进行贴图的时候,如果你希望图片在侧面进行重复贴图,那么必须要求贴图纹理的宽高大小一定是 2 的 n 次方。 例如:256x512、1024x1024 等
(LayerOptions)
默认的图层参数
Name | Description |
---|---|
opts.loca Loca
(default null )
|
loca 对象,如果有,图层默认添加到地图上 |
opts.zIndex Number
(default 120 )
|
图层显示层级,如果图层的深度检测开启,那么 zIndex 有可能失效。 |
opts.opacity Number
(default 1 )
|
图层整体透明度 |
opts.visible Boolean
(default true )
|
图层是否可见 |
opts.zooms [Number, Number]
(default [2,20] )
|
图层缩放等级范围 |
opts.cullface String
(default 'back' )
|
剔除背面/前面的面(选择剔除将会提升性能),可选:back/front/none,back是剔除背面的面,front是剔除前面的面,none是不进行剔除。 |
opts.acceptLight Boolean
(default true )
|
面是否接受光照,光照信息在 loca 对象中配置 |
opts.shininess Number
(default 30 )
|
立体网格的粗糙度,值越高,说明表面越粗糙。 |
opts.hasSide Boolean
(default true )
|
当面有厚度的时候,有没有侧面。 |
opts.hasBottom Boolean
(default false )
|
当面有厚度的时候,有没有底面。 |
opts.depth Boolean
(default true )
|
是否开启深度检测,开启后可能会影响zIndex |
opts.blockHide Boolean
(default true )
|
是否开启被遮挡的面隐藏,默认开启,如果关闭,在有透明度的时候,会显示出被遮挡的面。 |
opts.labelsLayerOptions Object
(default undefined )
|
文字标注图层配置,配置同 AMap.LabelsLayer |
var polygonLayer = new Loca.PolygonLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
opacity: 1,
cullface: 'back',
acceptLight: true,
shininess: 30,
hasSide: true,
depth: true,
})
获取图层标注的AMap.LabelsLayer
any
:
AMap.LabelsLayer实例
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(PolygonStyle)
Name | Description |
---|---|
options.topColor (String | Function)
(default '#fff' )
|
面的顶面颜色 |
options.sideColor (String | Function)
(default '#fff' )
|
面的侧面颜色(已废弃) |
options.sideTopColor (String | Function)
(default '#fff' )
|
面的侧面顶部的颜色 |
options.sideBottomColor (String | Function)
(default '#fff' )
|
面的侧面底部的颜色 |
options.bottomColor (String | Function)
(default '#fff' )
|
面的底部的颜色 |
options.altitude (Number | Function)
(default 0 )
|
海拔高度,也就是面的底面的高度。单位:米。支持动画过渡效果。 |
options.height (Number | Function)
(default 0 )
|
面的厚度。单位:米。支持动画过渡效果。 |
options.texture (Canvas | URL | Image | Base64)
(default null )
|
带有高度的时候,侧面的贴图纹理,目前仅支持侧面。如果需要纹理在侧面重复贴图,需要图片的宽高是 2 的 n 次方像素值。比如:256x256,64x1024 |
options.textureSize ([Number, Number] | Function)
(default [20,3] )
|
一个纹理图片覆盖的大小,[宽度, 高度],单位是米,默认是宽 20 米,高 3 米贴一张纹理,会重复贴图。 |
options.label (Object | Function)
(default undefined )
|
面中心位置的文字标注,配置同 AMap.LabelMarker |
options.labelAltitude (Number | Function)
(default 0 )
|
文字标注相对于顶面的海拔高度。单位:米。 |
polygonLayer.setStyle({
// 除了下面设置的属性,其他的缺省属性将恢复默认值。
topColor: 'rgba(255,255,255,0.7)',
texture: './building.png',
textureSize: [100, 50],
height: function(index, data) {
return data.properties.height;
},
// 文字标注配置
label: {
text: {
content: (index, feat) => feat.properties.name
}
},
});
热力图,支持 3D 和不同颜色设置的聚合点数据显示。并且支持像素单位和米单位的热力聚合。 针对部分业务场景,还能够支持颜色边缘的模糊过渡和硬过渡效果。详细查看 difference 属性。
var heatmapLayer = new Loca.HeatMapLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
opacity: 1,
})
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(HeatMapStyle)
Name | Description |
---|---|
options.radius (Number | Function)
(default 20 )
|
热力的聚合半径,支持每个点的半径单独设置,单位取决于 unit 字段。支持动画过渡效果。 |
options.value (Number | Function)
(default 10 )
|
每个热力点的值,会影响最终的聚合结果,值越高代表越热。 |
options.gradient Object
(default {0.5:'blue',0.65:'rgb(117,211,248)',0.7:'rgb(0, 255, 0)',0.9:'#ffea00',1.0:'red'} )
|
热力的颜色梯度,值是对象映射的形式。 |
options.opacity [Number, Number]
(default [0,1] )
|
热力颜色的透明度区间,热力颜色的透明度过渡将在此区间取值,可以用来调节热力图的透明度效果。 |
options.height Number
(default 100 )
|
热力最高点的高度值,单位取决于 unit 字段。支持动画过渡效果。 |
options.heightBezier Array
(default [0.4,0.2,0.4,0.8] )
|
热力的最低点到最高点的变化曲线。 |
options.max Number
(default null )
|
热力值的最大值,默认为数据中的最高值,也可以自定义设置,会控制热力的最热区域的显示效果。 |
options.min Number
(default null )
|
热力值的最小值,默认为数据中的最小值,也可以自定义设置,会控制热力的最冷区域的显示效果。 |
options.unit String
(default 'px' )
|
热力的单位,可选值是 px 和 meter。meter 代表地理真实的距离。 |
options.difference Boolean
(default false )
|
热力图默认的过渡效果,颜色默认会渐变过渡,如果开启 difference,将会有明显的边缘效果。 |
heatmapLayer.setStyle({
// 除了 gradient 属性,其他的缺省属性将恢复默认值。
gradient: {
0.5: 'blue',
0.65: 'rgb(117,211,248)',
0.7: 'rgb(0, 255, 0)',
0.9: '#ffea00',
1.0: 'red',
},
opacity: [0, 1],
unit: 'meter',
height: 9000,
radius: 5000,
difference: false,
});
蜂窝网格图,将普通的点数据按照蜂窝网格划分成若干区域,每个蜂窝网格区域都会包含落在此区域内的点数据信息。 每个蜂窝网格格子支持单独设置自定义的高度信息、颜色信息。 要注意的是:我们认为所有蜂窝网格格子必须是唯一的大小(radius)和间隙(gap)。 我们还在带有高度的蜂窝网格中加入了可接受光照信息的属性:acceptLight。假如设置了光照并在图层中开启接受光照, 那么每个立体蜂窝网格将会有光照反射的效果。
(LayerOptions)
默认的图层参数
Name | Description |
---|---|
opts.loca Loca
(default null )
|
loca 对象,如果有,图层默认添加到地图上 |
opts.zIndex Number
(default 120 )
|
图层显示层级,如果图层的深度检测开启,那么 zIndex 有可能失效。 |
opts.opacity Number
(default 1 )
|
图层整体透明度 |
opts.visible Boolean
(default true )
|
图层是否可见 |
opts.zooms [Number, Number]
(default [2,20] )
|
图层缩放等级范围 |
opts.cullface String
(default 'back' )
|
剔除背面/前面的面(选择剔除将会提升性能),可选:back/front/none,back是剔除背面的面,front是剔除前面的面,none是不进行剔除。 |
opts.acceptLight Boolean
(default true )
|
立体蜂窝网格是否接受光照,光照信息在 loca 对象中配置 |
opts.depth Boolean
(default true )
|
是否有深度检测能力,当图层元素没有高度的时候,并且需要 zIndex 生效,那么请关闭深度检测。 |
opts.shininess Number
(default 30 )
|
立体蜂窝网格的粗糙度,值越高,说明表面越粗糙。 |
opts.hasSide Boolean
(default true )
|
当立体蜂窝网格有厚度的时候,有没有侧面和底面 |
opts.labelsLayerOptions Object
(default undefined )
|
文字标注图层配置,配置同 AMap.LabelsLayer |
var hexagonLayer = new Loca.HexagonLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
opacity: 1,
cullface: 'back',
acceptLight: true,
depth: true,
shininess: 30,
hasSide: true,
})
获取图层标注的AMap.LabelsLayer
any
:
AMap.LabelsLayer实例
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(HexagonLayer)
Name | Description |
---|---|
options.value Function
(default null )
|
返回每个网格的数值,参数为(index, feat)。 如果设置了该方法,则其余样式在使用Function设置时,第二个参数feat会增加value、max、min属性,可以用来区分设置网格样式。 |
options.topColor (String | Function)
(default '#ffffff' )
|
顶面颜色 |
options.sideColor (String | Function)
(default '#ffffff' )
|
侧面颜色( v2.1.0 已废弃) |
options.sideTopColor (String | Function)
(default '#fff' )
|
面的侧面顶部的颜色 |
options.sideBottomColor (String | Function)
(default '#fff' )
|
面的侧面底部的颜色 |
options.altitude (Number | Function)
(default 0 )
|
海拔高度,也就是立面的底面的高度。单位:米。支持动画过渡效果 |
options.height (Number | Function)
(default 0 )
|
网格高度,也就是立面的顶面的高度。单位:米。支持动画过渡效果 |
options.radius Number
(default 1000 )
|
一个网格的半径大小,只能是一个常量值。单位由 unit 决定。 |
options.gap Number
(default 0 )
|
相邻网格的间隙大小,只能是一个常量值。单位由 unit 决定。 |
options.unit Number
(default 'meter' )
|
单位,只能是一个常量值。可选项: px, meter。一个是屏幕像素单位,一个是地理单位。地理单位性能更加优异。 |
options.label (Object | Function)
(default undefined )
|
网格中心位置的文字标注,配置同 AMap.LabelMarker |
options.labelAltitude (Number | Function)
(default 0 )
|
文字标注相对于顶面的海拔高度。单位:米。 |
hexagonLayer.setStyle({
// 除了 topColor 属性,其他的缺省属性将恢复默认值。
topColor: 'rgba(255,255,255,0.7)',
// 文字标注配置
label: {
text: {
content: (index, feat) => feat.properties.name
}
},
});
网格图,将普通的点数据按照网格划分成若干区域,每个网格区域都会包含落在此区域内的点数据信息。 每个网格格子支持单独设置自定义的高度信息、颜色信息。 要注意的是:我们认为所有网格格子必须是唯一的大小(radius)和间隙(gap)。 我们还在带有高度的网格中加入了可接受光照信息的属性:acceptLight。假如设置了光照并在图层中开启接受光照, 那么每个立体网格将会有光照反射的效果。
(LayerOptions)
默认的图层参数
Name | Description |
---|---|
opts.loca Loca
(default null )
|
loca 对象,如果有,图层默认添加到地图上 |
opts.zIndex Number
(default 120 )
|
图层显示层级,如果图层的深度检测开启,那么 zIndex 有可能失效。 |
opts.opacity Number
(default 1 )
|
图层整体透明度 |
opts.visible Boolean
(default true )
|
图层是否可见 |
opts.zooms [Number, Number]
(default [2,20] )
|
图层缩放等级范围 |
opts.cullface String
(default 'back' )
|
剔除背面/前面的面(选择剔除将会提升性能),可选:back/front/none,back是剔除背面的面,front是剔除前面的面,none是不进行剔除。 |
opts.acceptLight Boolean
(default true )
|
立体网格是否接受光照,光照信息在 loca 对象中配置 |
opts.depth Boolean
(default true )
|
是否有深度检测能力,当图层元素没有高度的时候,并且需要 zIndex 生效,那么请关闭深度检测。 |
opts.shininess Number
(default 30 )
|
立体网格的粗糙度,值越高,说明表面越粗糙。 |
opts.hasSide Boolean
(default true )
|
当立体网格有厚度的时候,有没有侧面和底面 |
opts.labelsLayerOptions Object
(default undefined )
|
文字标注图层配置,配置同 AMap.LabelsLayer |
var gridLayer = new Loca.GridLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
opacity: 1,
cullface: 'back',
acceptLight: true,
depth: true,
shininess: 30,
hasSide: true,
})
获取图层标注的AMap.LabelsLayer实例
any
:
AMap.LabelsLayer实例
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(GridLayer)
Name | Description |
---|---|
options.value Function
(default null )
|
返回每个网格的数值,参数为(index, feat)。 如果设置了该方法,则其余样式在使用Function设置时,第二个参数feat会增加value、max、min属性,可以用来区分设置网格样式。 |
options.topColor (String | Function)
(default '#ffffff' )
|
顶面颜色 |
options.sideColor (String | Function)
(default '#ffffff' )
|
侧面颜色( v2.1.0 已废弃) |
options.sideTopColor (String | Function)
(default '#fff' )
|
面的侧面顶部的颜色 |
options.sideBottomColor (String | Function)
(default '#fff' )
|
面的侧面底部的颜色 |
options.altitude (Number | Function)
(default 0 )
|
海拔高度,也就是立面的底面的高度。单位:米。支持动画过渡效果 |
options.height (Number | Function)
(default 0 )
|
网格高度,也就是立面的顶面的高度。单位:米。支持动画过渡效果 |
options.radius Number
(default 1000 )
|
一个网格的半径大小,只能是一个常量值。单位由 unit 决定。 |
options.gap Number
(default 0 )
|
相邻网格的间隙大小,只能是一个常量值。单位由 unit 决定。 |
options.unit Number
(default 'meter' )
|
单位,只能是一个常量值。可选项: px, meter。一个是屏幕像素单位,一个是地理单位。地理单位性能更加优异。 |
options.label (Object | Function)
(default undefined )
|
网格中心位置的文字标注,配置同 AMap.LabelMarker |
options.labelAltitude (Number | Function)
(default 0 )
|
文字标注相对于顶面的海拔高度。单位:米。 |
gridLayer.setStyle({
// 除了 topColor 属性,其他的缺省属性将恢复默认值。
topColor: 'rgba(255,255,255,0.7)',
// 文字标注配置
label: {
text: {
content: (index, feat) => feat.properties.name
}
},
});
带有动画效果的图层类型
大地面上的点,可展示三种类型:颜色圆、图标、动画图标
var scatter = new Loca.ScatterLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
opacity: 1,
});
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(ScatterStyle)
Name | Description |
---|---|
options.size ([Number, Number] | Function)
(default [20,20] )
|
图标长宽,单位取决于 unit 字段。 |
options.rotation (Number | Function)
(default 0 )
|
图标的旋转角度,以正北方向为起点,沿顺时针方向旋转。 |
options.color (String | Function)
(default 'rgba(200,200,200,1)' )
|
没有纹理的情况下,圆片的填充颜色。 |
options.altitude (Number | Function)
(default 0 )
|
图标的海拔高度。单位:米。 |
options.borderWidth (Number | Function)
(default 0 )
|
描边宽度,单位和 size 保持一致。 |
options.borderColor (String | Function)
(default 'rgba(250,250,250,1)' )
|
没有纹理的情况下,圆片的描边颜色。 |
options.texture (Canvas | Url | Base64)
(default null )
|
图标纹理资源,如果需要有动态效果,请使用帧序列图片资源:url,并且为了效果更好,我们建议使用宽高: 4096x128 像素的图片。⚠: 帧序列图片是头尾相连可以循环的图片。 |
options.unit String
(default 'px' )
|
size 和 borderWidth 的单位,可以是 'px' 和 'meter',meter 是实际地理的米,px 是屏幕像素。 |
options.animate Boolean
(default false )
|
是否有动画,动画开启需要使用序列帧的纹理,否则没有动画效果。 |
options.duration Number
(default 0 )
|
一轮动画的时长,单位毫秒(ms)。需要开启 animate 才能使用。 |
scatter.setStyle({
// 除了 color 属性,其他的缺省属性将恢复默认值。
color: 'rgba(255,255,255,0.7)',
});
轨迹线图层,支持设置轨迹样式和轨迹点。
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(any)
{PulseLineStyle} options
Name | Description |
---|---|
options.lineWidth (Number | Function)
(default 1 )
|
脉冲线的宽度 |
options.headColor (String | Function)
(default 'rgba(0, 0, 0, 0.75)' )
|
脉冲头部颜色,每段脉冲的颜色由头部到尾部渐变 |
options.trailColor (String | Function)
(default 'rgba(0, 0, 0, 0.25)' )
|
脉冲尾部颜色 |
options.altitude Number
(default 0 )
|
线整体海拔高度 |
options.interval Number
(default 1 )
|
每段脉冲占整条路径长度的比例,例如interval = 0.25, 则表示每条路径上同时有4段脉冲 |
options.duration Number
(default 2000 )
|
表示一条脉冲动画从头走到尾的时间(毫秒) |
layer.setStyle({
lineWidth: 2,
headColor: '#A635DB',
trailColor: '#7F3CFF',
interval: 0.5,
duration: 2000
})
连接飞线图层,可以支持弧度,宽度,过渡色等能力。 并且还支持脉冲动画,可以表达数据的朝向。
(LayerOptions)
默认的图层参数
Name | Description |
---|---|
opts.loca Loca
(default null )
|
loca 对象,如果有,图层默认添加到地图上 |
opts.zIndex Number
(default 120 )
|
图层显示层级 |
opts.opacity Number
(default 1 )
|
图层整体透明度 |
opts.visible Boolean
(default true )
|
图层是否可见 |
opts.depth Boolean
(default true )
|
图层中的要素是否具有前后遮盖关系,默认开启 |
opts.zooms [Number, Number]
(default [2,20] )
|
图层缩放等级范围 |
var linkLayer = new Loca.PulseLinkLayer({
loca: loca,
zooms: [2, 20],
zIndex: 10,
visible: true,
opacity: 1,
depth: true,
})
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(PulseLinkStyle)
Name | Description |
---|---|
options.lineColors (Array | Function)
|
链接线颜色数组。 类型为String时代表单根线的颜色,支持16进制,rgb,rgba和"red","blue"等color keywords; 类型为Array时,可设置颜色渐变,color[0]为起始色,color[color.lenth-1]为终止色,中间为过渡色; 类型为Function时,返回每根线的颜色。参数为(index,item),item为一个对象{link,distance},link为该条线的初始信息。返回结果必须是颜色数组 Array(渐变)。 |
options.height (Number | Function)
|
高度,单位为米,代表弧顶的高度。 |
options.maxHeightScale Number
|
弧顶位置,代表距离起点的哪个位置是弧顶最高点,可以用来模拟抛物线。 类型为Function时,返回每根线的高度。参数为(index,item),item中有distance属性,代表两点间的距离(米),可以用该属性处理高度。 |
options.smoothSteps Number
|
平滑步数,代表弧线的分隔段数,越大平滑度越好,但更消耗性能,默认为50。 |
options.lineWidth ([Number, Number] | Function)
|
连接线的头尾宽度设置:[起点宽度,终点宽度];单位跟随 unit 字段变化。 |
options.unit String
|
px 和 meter,代表此图层的样式单位,像素或者米。 |
options.dash ([Number, Number, Number, Number] | Function)
|
连接线的虚线配置信息:[实线长度, 虚线长度, 实线长度, 虚线长度]; |
options.speed (Number | Function)
|
速度,每个脉冲点行进的速度(可以针对每个线路进行单独设置速度)。单位:米/秒 或者 像素/秒。 |
options.headColor String
|
脉冲点的头部颜色。 |
options.trailColor String
|
脉冲点的尾部颜色。 |
options.flowLength Number
|
脉冲点的长度。单位跟随 unit 字段变化。如果不希望有脉冲动画,设置此长度为 0 即可。 |
pulseLinkLayer.setStyle({
unit: 'px',
lineColors: 'rgba(255,255,255,0.7)',
maxHeightScale: 0.5,
speed: function(index, prop){
return index * 10;
}
});
激光图层,支持展示点类型数据的激光放射效果。
更新图层样式,如果有的字段被缺省,那么它的值将会被重置为默认值。
(any)
{LaserStyle} options
Name | Description |
---|---|
options.unit String
(default 'px' )
|
图层的单位。可选值:px:像素,meter:地理单位米 |
options.height (Number | Function)
(default 200 )
|
最大放射高度 |
options.color (String | Function)
(default 'rgba(255,255,0,0.5)' )
|
激光颜色 |
options.angle Number
(default 0 )
|
倾斜角度,取值0~360deg,默认垂直向上,180时表示垂直向下 |
options.lineWidth Number
(default 2 )
|
激光线宽度 |
options.trailLength Number
(default 30 )
|
激光线长度 |
options.fadeOpacity Number
(default 0.2 )
|
接近最高点时的颜色衰减 |
options.duration (Number | Function)
(default 2000 )
|
单次放射的时长(毫秒) |
options.interval (Number | Function)
(default 0 )
|
每次放射的间隔时间(毫秒) |
options.delay (Number | Function)
(default 0 )
|
首次放射的延迟时间(毫秒) |
options.repeat Number
|
放射次数,默认循环 |
layer.setStyle({
unit: 'px',
height: 100,
color: '#7F3CFF',
lineWidth: 3,
angle: 45,
trailLength: 50,
duration: 2000,
interval: 0,
delay: 1000,
repeat: 3
})