如何从坐标数组中渲染L.featureGroup

问题描述 投票:2回答:1

我如何从data.json中的coordinateRoute数组中渲染L.featureGroup,以使用按钮“ Snake it!”进行处理,就像当我单击“ Snake”时一样它!”有自己的id,地图将显示带有相应的[[id

的coordinateRoute的折线Here's link of the code

这里是data.json:

link of data.json

要更多

特定地这是我的尝试,但WRONG

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; });
javascript arrays reactjs loops react-leaflet
1个回答
0
投票
我成功了!但是我认为它不是最佳的

这是我的代码:

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 });

© www.soinside.com 2019 - 2024. All rights reserved.