如何在数组同一下标推入两个值生成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
相关产品推荐
相关产品推荐

