AI 地图
产品服务
解决方案
文档与支持
定价
更新时间: 2026/08/03 16:28
LineLayer图层

LineLayer类支持加载GeoJSON线数据源,能够进行海量线数据的个性化展示

添加线图层

线图层可以设置线宽、颜色、描边和纹理等属性。

var lineLayer = new BMap.LineLayer({
style: {
strokeStyle: 'solid',
strokeColor: '#2a6cf6', // 设置线条的颜色
strokeWeight: 4, // 设置线条的宽度,单位为像素
strokeOpacity: 0.9, // 设置线条的透明度,取值范围0-1
},
});
map.addLayer(lineLayer);

LineLayer使用 GeoJSON 格式的数据源,通过 setData 方法设置数据:

var geojson = {
// 线数据,geometry类型为LineString或MultiLineString
type: 'FeatureCollection',
features: [{
type: 'Feature',
properties: { name: 'line1' },
geometry: {
type: 'LineString',
coordinates: [[116.404, 39.915], [116.410, 39.925], [116.425, 39.920]],
},
}],
};
lineLayer.setData(geojson); // 设置线图层的数据
设置虚线、描边和纹理
纹理线

通过style.strokeTextureUrl 设置图片地址

var lineLayer = new BMap.LineLayer({
style: {
strokeTextureUrl: 'texture.png',
strokeTextureWidth: 16, // 设置纹理的宽度,单位为像素
strokeTextureHeight: 16, // 设置纹理的高度,单位为像素
},
});
虚线

能够通过style.strokeStyle: 'dashed'设置虚线展示,用style.dashArray设置虚线样式

var lineLayer = new BMap.LineLayer({
style: {
strokeStyle: 'dashed',
dashArray: [20, 14], // 设置虚线样式,实线20像素,间隙14像素
},
});
描边线

通过style.borderColor以及style.borderWeight设置虚线的颜色和宽度,默认无描边

var lineLayer = new BMap.LineLayer({
style: {
borderColor: '#222831',
borderWeight: 3,
},
});
通过数据控制线样式

样式属性除了设置固定值,还支持设置为表达式。表达式在渲染时会读取每条线的 properties 属性数据并实时求值,从而实现同一个图层内的不同线条展示不同样式。

var lineLayer = new BMap.LineLayer({
style: {
strokeColor: ['match', ['get', 'level'], // 根据level属性匹配颜色
1, '#e7515a', // level为1时显示红色
2, '#2a6cf6', // level为2时显示蓝色
'#9aa0a8', // 都不匹配时使用的默认色
],
strokeWeight: ['match', ['get', 'level'],
1, 6,
2, 4,
2,
],
},
});
map.addLayer(lineLayer);
监听事件

JSAPI支持监听线图层的事件。监听事件前,需要在创建图层时开启拾取能力:

var lineLayer = new BMap.LineLayer({
enablePicked: true, // 开启拾取,点击线条时触发事件
selectedColor: '#ff7a45', // 设置选中线条的高亮颜色
style: {
strokeColor: '#2a6cf6',
strokeWeight: 4,
},
});
lineLayer.addEventListener('click', function (e) {
if (e.value && e.value.dataIndex !== -1) {
var properties = e.value.dataItem.properties; // 获取被点击线条的属性数据
alert('您点击了线图层中的第 ' + e.value.dataIndex + ' 条线');
}
});
相关类参考

BMap.LineLayer

上一篇

点图层

下一篇

面图层
本篇文章对您是否有帮助?