如何在JS中为Leaflet地图排序含时间戳的坐标数组并裁剪
JavaScript处理Leaflet坐标数组方法
实现步骤
- 先对原始坐标数组按**时间戳(子数组第三个元素)**排序
- 再提取每个子数组的前两个元素(纬度、经度),移除时间戳
代码示例
原始数组示例:
// 格式:[纬度, 经度, 时间戳] const polylineTimestamp = [ [39.9042, 116.4074, 1620000000000], [31.2304, 121.4737, 1620003600000], [23.1291, 113.2644, 1619996400000] ];
处理代码:
// 1. 按时间戳升序排序(创建原数组副本,避免修改原始数据) const sortedArray = [...polylineTimestamp].sort((a, b) => a[2] - b[2]); // 2. 提取经纬度,生成仅含坐标的数组 const polylinePoints = sortedArray.map(item => [item[0], item[1]]);
说明
- 如果不需要保留原始数组,直接用
polylineTimestamp.sort(...)即可,无需创建副本 - 若要按时间戳降序排序,把
sort回调里的a[2] - b[2]改成b[2] - a[2] map方法会遍历每个子数组,只返回纬度和经度两个元素,最终得到Leaflet可用的坐标数组
内容的提问来源于stack exchange,提问作者Tikky
相关产品推荐
相关产品推荐

