You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在数组同一下标推入两个值生成React Leaflet所需的Polyline格式数组

问题原因

现有代码的错误出在track.push()的传参逻辑:你将纬度、经度分别作为两个独立的单元素数组传入push方法,导致最终生成的track数组中每个子项都是仅包含单个值的数组,不符合React Leaflet要求的「每个子项为[纬度, 经度]二元数组」的格式规范。

修复方案

方案1:调整原有for循环逻辑

仅需要修改push方法的入参,把经纬度合并为同一个二元数组传入即可:

const drawLine = () => {
    // 可选:每次调用前清空track数组,避免历史数据累加
    track = []
    for(var i=0; i<points.length; i++) {
        track.push([points[i].latitude, points[i].longitude]);
    }
    console.log(track);
}

方案2:使用数组map方法简化实现

无需手动编写for循环,直接通过遍历points数组生成符合要求的结构:

const drawLine = () => {
    const track = points.map(item => [item.latitude, item.longitude])
    console.log(track);
    // 生成的track可直接传入Polyline组件的positions属性使用
}

内容的提问来源于stack exchange,提问作者Alan Erick Salgado Vazquez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:15:08