Wall
Geographic fencing gives the concept of height based on the original line layer, and other uses are consistent with ordinary line drawings.
accomplish
Let’s introduce how to draw a simple geofence.
- you can
L7Found on the official websiteOnline case
use
import { Scene, LineLayer } from '@antv/l7';
import { GaodeMap } from '@antv/l7-maps';
const scene = new Scene({
id: 'map',
map: new GaodeMap({
center: [119.297868, 29.732983],
zoom: 7.11,
rotation: 1.22,
pitch: 45.42056074766357,
style: 'dark',
}),
});
scene.on('loaded', () => {
fetch('https://gw.alipayobjects.com/os/bmw-prod/93a55259-328e-4e8b-8dc2-35e05844ed31.json')
.then((res) => res.json())
.then((data) => {
const layer = new LineLayer({}).source(data).size(40).shape('wall').style({
opacity: 1,
sourceColor: '#0DCCFF',
targetColor: 'rbga(255,255,255, 0)',
});
scene.addLayer(layer);
});
});
shape
In order to draw geofences we need toshapeThe parameters are set towall。
animate
开启关闭动画
layer.animate(true);
layer.animate(false);
设置动画参数
- duration 动画时间 单位(s)秒
- interval 轨迹间隔, 取值区间 0 - 1
- trailLength 轨迹长度 取值区间 0 - 1
layer.animate({
duration: 4,
interval: 0.2,
trailLength: 0.1,
});
参数动画介绍
L7 目前动画参数为相对单位,我们默认一条线段的长度为 1
如果 interval = 0.2,则一条轨迹将会分成 5 段,如果 interval = 0.5 则为两段。
style
linearColor
线图层通过在 style 中设置起始颜色和终点颜色来设置颜色渐变,渐变色的优先级比 color 方法设置的颜色更高
const layer = new LineLayer({})
.source(data, {
parser: {
type: 'csv',
x: 'lng1',
y: 'lat1',
x1: 'lng2',
y1: 'lat2',
},
})
.size(1)
.shape('arc')
.color('#8C1EB2')
.style({
sourceColor: '#f00', // 起点颜色
targetColor: '#0f0', // 终点颜色
});
🌟 The current gradient direction is vertically upward
线图层支持纹理贴图和多种表现形式,通过 scene.addImage 方法添加到全局的资源,使用 texture 方法指定贴图。
scene.addImage(
'02',
'https://gw.alipayobjects.com/zos/bmw-prod/ce83fc30-701f-415b-9750-4b146f4b3dd6.svg',
);
const layer = new LineLayer()
.source(data)
.size(4)
.shape('line')
.texture('02')
.color('#25d8b7')
.animate({
interval: 1, // 间隔
duration: 1, // 持续时间,延时
trailLength: 2, // 流线长度
})
.style({
lineTexture: true, // 开启线的贴图功能
iconStep: 20, // 设置贴图纹理的间距
});
- lineTexture 指定是否开启纹理贴图能力
- iconStep 指定贴图在线图层上面排布的间隔
texture advance
✨ animate
当线图层 (shape 为 arc/arc3d) 开启动画模式的时候,纹理在线图层上的分布还会和 animate 的参数相关.
线图层上排列的纹理的数量大致为 duration/interval
.animate({
duration: 1,
interval: 0.2,
trailLength: 0.1
});
// 此时 纹理贴图数量为 duration / interval = 5
✨ textureBlend 参数
通过控制 style 方法中的 textureBlend 参数,我们可以控制纹理图层和线图层的混合情况
- normal
- replace
.style({
lineTexture: true, // 开启线的贴图功能
iconStep: 30, // 设置贴图纹理的间距
textureBlend: 'replace', // 设置纹理混合方式,默认值为 normal,可选值有 normal/replace 两种
});
🌟 Geofence supports new style parameter iconStepCount
- Texture interval will only take effect when texture is turned on
- Texture spacing supports configuring the spacing between textures
- Texture spacing needs to be used in conjunction with texture spacing
.style({
lineTexture: true, // Enable line mapping function
iconStep: 40, // Set the spacing of the texture
iconStepCount: 4
})
heightfixed
wallFixed height configuration supportedheightfixed。
.style({
heightfixed: true // The default is false. The actual world height does not change after it is turned on (note the size adjustment)
})