let pLineData = {
type: "FeatureCollection",
features: [
{
type: "Feature",
//properties对象中的值可以单独传递到setStyle的属性中做回调函数的参数
//意味的可以通过该对象获取每一组数单独的一些值,在 layer.setStyle设置不同的style而不是一个定值
properties: { type: 1 },
geometry: {
type: "LineString",
coordinates: [[116.417458, 39.934026]],
},
},
// {
// type: "Feature",
// properties: { type: 2 },
// geometry: {
// type: "LineString",
// coordinates: [
// [126.128627, 41.146943],
// [126.12425, 41.137959],
// [126.113693, 41.128908],
// ],
// },
// },
],
};
data.forEach((item) => {
if (item.coord) {
try {
const coord = JSON.parse(item.coord);
let obj = {
type: "Feature",
properties: { type: 2 },
geometry: {
type: "LineString",
coordinates: coord,
},
};
pLineData.features.push(obj);
} catch (error) {}
}
});
let geo = new Loca.GeoJSONSource({
data: pLineData, //数据格式
});
// 颜色配置
var headColors = ['#ECFFB1', '#146968', '#146968', '#146968', '#146968', '#146968', '#146968', '#146968'];
var trailColors = [
'rgba(255,178,6, 0.2)',
'rgba(255,178,6, 0.2)',
'rgba(20,105,104, 0.2)',
'rgba(20,105,104, 0.2)',
'rgba(20,105,104, 0.2)',
'rgba(20,105,104, 0.2)',
'rgba(20,105,104, 0.2)',
'rgba(20,105,104, 0.2)',
];
let layer = new Loca.PulseLineLayer({
// loca,
// zIndex: 100000000,
opacity: 1,
visible: true,
zooms: [2, 22],
});
layer.setSource(geo);
layer.setStyle({
altitude: 0,
//这三个参数可以通过feature获取pLineData中不同段的properties值做不同效果
lineWidth: (_, feature) => feature.properties.lineWidthRatio * 1 + 3,
headColor: (_, feature) => headColors[feature.properties.type],
trailColor: (_, feature) => trailColors[feature.properties.type],
// lineWidth: Number(10)/20,
// // 脉冲头颜色
// headColor: "rgb(204, 154, 155)",
// // 脉冲尾颜色
// trailColor: "rgba(192, 53, 50, 0.9)",
// // 脉冲长度,0.25 表示一段脉冲占整条路的 1/4
interval: 0.5,
// 脉冲线的速度,几秒钟跑完整段路
duration: 3000,
});
loca.add(layer);
loca.animate.start();