10. Line 线图层

2 阅读2分钟

10. Line 线图层

概述

Line 图层用于渲染线要素(LineString),常用于道路、轨迹、边界等场景。本节学习:

  • Line 图层基本用法
  • line-width / line-color / line-dasharray / line-cap / line-join 属性
  • 路线轨迹绘制实战

基本用法

map.addLayer({
  id: 'route-line',
  type: 'line',
  source: 'my-geojson',
  layout: {
    'line-cap': 'round',
    'line-join': 'round'
  },
  paint: {
    'line-color': '#1890ff',
    'line-width': 3
  }
})

Paint 属性

属性类型默认值说明
line-colorcolor#000000线颜色
line-widthnumber1线宽(像素)
line-opacitynumber1透明度
line-dasharraynumber[]虚线模式 [实线段, 空白段]
line-blurnumber0模糊半径
line-gap-widthnumber0线中间的间隙宽度
line-offsetnumber0线偏移(像素)
line-translate[x, y][0, 0]几何偏移
line-gradientexpression线渐变色

line-dasharray 虚线

paint: {
  'line-dasharray': [4, 2],       // 4px 实线 + 2px 空白
  // 'line-dasharray': [2, 2],    // 等距虚线
  // 'line-dasharray': [4, 2, 1, 2], // 长短交替虚线
}

line-gradient 渐变

// 需要数据源启用 lineMetrics
map.addSource('route', {
  type: 'geojson',
  data: routeGeoJSON,
  lineMetrics: true  // ⚠️ 必须启用
})

map.addLayer({
  id: 'route-gradient',
  type: 'line',
  source: 'route',
  paint: {
    'line-width': 6,
    'line-gradient': [
      'interpolate', ['linear'], ['line-progress'],
      0, '#1890ff',
      0.5, '#52c41a',
      1, '#f5222d'
    ]
  }
})

Layout 属性

属性说明可选值
line-cap线端样式'butt' / 'round' / 'square'
line-join线连接样式'bevel' / 'round' / 'miter'
line-sort-key排序键number
visibility显隐'visible' / 'none'

line-cap 线端样式

  • butt:平切(默认)
  • round:圆头
  • square:方头(比 butt 多出半个线宽)

line-join 连接样式

  • miter:尖角(默认)
  • round:圆角
  • bevel:斜切

本课小结

  • Line 图层渲染 LineString 和 MultiLineString 要素
  • line-dasharray 创建虚线,line-gradient 创建渐变线
  • line-cap 控制线端样式,line-join 控制连接样式
  • 渐变线需要在数据源中启用 lineMetrics: true

📌 上一节:09. Fill 填充图层 📌 下一节:11. Symbol 符号图层