经纬志
首页 / Leaflet / 使用示例

动画飞线

北京到五个城市的弧线,光点沿路径推进并拖出尾迹,循环播放,错峰启动。

Leaflet 1.9.4 · 更新 2026-10-27
源码与运行效果
运行效果

说明

每条航线在经纬度空间里用二次贝塞尔曲线插值出 65 个点。控制点取两点中点的法线方向偏移, 偏移量按两点距离比例计算,弧高因此随航线长度变化,短航线不会拱得夸张。

部分实现
底层航线完整弧线的低透明度虚线,作为路径提示
尾迹每帧取当前索引往前 14 个点,setLatLngs 更新
光点divIcon 圆点,颜色由行内样式控制发光
推进按秒推进 26 个采样点,单帧时长截断到 50 ms
循环到达末端停 900 ms,清空尾迹后回到起点
错峰第二至第五条分别延迟 650 ms 的整数倍启动

城市名用 divIcon 包一段文字,锚点上移 18 像素,避免压住弧线起点。 地图上再叠一层深色矩形,降低底图亮度,让高饱和飞线更突出。

经纬度空间的贝塞尔曲线不等距,长航线的中段可能显得速度偏慢。需要严格匀速时, 先在投影坐标或大圆路径上插值,再换算回经纬度,按弧长参数化推进。