如何从坐标数组呈现 L.featureGroup

IT技术 javascript arrays reactjs loops react-leaflet
2021-05-24 05:02:00

我怎样才能使L.featureGroup从数组coordinateRoutedata.json,处理与按键“蛇了!”,这就像当我点击“蛇呀!” 有它自己的id,地图将显示带有相应id的coordinateRoute的Polyline

这是代码的链接

这是 data.json:

data.json 的链接

具体地说,这是我尝试但错误的方式

    let route;
    data.map((item) => {
      if (item.id === 1 && item.coordinateRoute) {
    return (route = L.featureGroup([
      item.coordinateRoute.map((line) => {
        if (i % 2 === 0) {
          L.marker(item.coordinateRoute[i], { icon });
        }
        L.polyline([item.coordinateRoute[i], item.coordinateRoute[i + 1]]);
        return i++;
      }),
    ]));


        return (route = L.featureGroup(lines));
      }
      return route;
    });
1个回答

我做到了!,但我认为它没有优化

这是我的代码:

let markerList = [];
    let polyLineList = [];
    let lines = [];
    for (let i = 0; i < 4; i++) {
      markerList.push(L.marker(data[0].coordinateRoute[i], { icon }));
      if (data[0].coordinateRoute[i + 1]) {
        polyLineList.push(
          L.polyline(
            [data[0].coordinateRoute[i], data[0].coordinateRoute[i + 1]],
            { snakingSpeed: 500 }
          )
        );
      }
    }
    let l = Math.min(markerList.length, polyLineList.length);

    for (let i = 0; i < l; i++) {
      lines.push(markerList[i], polyLineList[i]);
    }
 const route = L.featureGroup(lines, { snakingPause: 50 });