리액트를 사용하고 있고 폴리곤을 4천여개 그려주고 있는데, 느린것이 당연하지만 조금 더 빠르게 그릴 수 있는 좋은 방법이 있는지 여쭈어봅니다.
현재는 백엔드에서 coordinate 배열을 받아와서 이런식으로 세팅해주고 있습니다.
let tempPolygons = []
data.map((item) => {
const shpaePoints = item.shape.coordinates
const polygonPath = shpaePoints.map((part) => {
return part.map((point) => {
return new kakao.maps.LatLng(point[0], point[1])
})
})
// 지도에 표시할 다각형을 생성합니다
const buidlingPolygon = new kakao.maps.Polygon({
path: polygonPath, // 그려질 다각형의 좌표 배열입니다
strokeWeight: 1, // 선의 두께입니다
strokeColor: theme.colors.primary[500], // 선의 색깔입니다
strokeOpacity: 0.6, // 선의 불투명도 입니다 1에서 0 사이의 값이며 0에 가까울수록 투명합니다
strokeStyle: 'solid', // 선의 스타일입니다
fillColor: theme.colors.primary[300], // 채우기 색깔입니다
fillOpacity: 0.7, // 채우기 불투명도 입니다
zIndex: 2,
})
// 하나씩 생성된 건물 폴리곤을 배열에 넣기
tempPolygons.push(buidlingPolygon)
})
setPolygons(tempPolygons) //useEffect로 polygons 변화를 감지하여 polygons.setMap(map) 처리