1.1.3 • Published 4 years ago

react-korea-map-visualization v1.1.3

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

react-korea-map-visualization

한국 지도 데이터 시각화를 위한 리액트 라이브러리 🇰🇷📍🗺

ScreenShots

Description

기존에 React 프로젝트에서 지도 시각화 작업을 하기 위해서는, D3.js와 행정 경계 토지 topojson 데이터로 지도를 그리는 단계부터 시작해 A to Z 작업해야했고, 또 다른 프로젝트에 이를 사용할시 반복 작업을 해야하는 불편이 있었습니다. 위와 같은 반복 작업을 줄이고, 좀 더 효율적인 개발을 돕기 위해 D3.js를 바탕으로 React에서 사용할 수 있는 리액트 라이브러리를 제작해보았습니다. Choropleth Map, Bubble Chart Map, Point Map, Pie Chart Map을 지원하며, Connection Map은 추후 업데이트 예정입니다.

Goals

Usage

라이브러리를 다운 받으시 후, 아래의 명령어를 입력해주세요. :)

install

npm install

Choropleth Map

ezgif com-gif-maker (7)

Props

PropTypeOptionalDefaultDescription
dataArray\<ChoroplethMapDataType>-각 지역별 코드와 데이터를 가진 \<ChoroplethMapDataType> 타입 데이터의 배열
colorsArray\<ColorDataType>-각 데이터 별 나타낼 \<ColorDataType> 타입 데이터의 배열
defaultColorstring:heavy_check_mark:-지도 위 행정구역의 기본 색상
borderColorstring:heavy_check_mark:-지도의 경계선 색상
styledOnHoverobject:heavy_check_mark:-마우스가 지도 내 지역에 올라간 상태일 때, 적용할 스타일
onRegionHoverfunction:heavy_check_mark:-마우스가 지도 내 지역에 올라간 상태일 때, 해당 지역 정보를 받는 콜백 함수
ChoroplethMapDataType
PropTypeOptionalDefaultDescription
regionCodestring시/도, 시/군/구의 경우 행정지역코드, 읍/면/동의 경우 법정지역코드
levelnumber:heavy_check_mark:-해당 지역의 choropleth 레벨, ColorDataType의 level과 함께 사용해야함
valuenumber:heavy_check_mark:-해당 지역의 데이터 값, ColorDataType의 range와 함께 사용해야함
ColorDataType
PropTypeOptionalDefaultDescription
levelnumber:heavy_check_mark:-ChoroplethMapDataType의 level과 함께 사용
range{start: number, end:number}:heavy_check_mark:-ChoroplethMapDataType의 value와 함께 사용
colorstring-해당하는 level에 맞거나, range 내에 속한 데이터를 나타낼 색상

Pie Chart Map

ezgif com-gif-maker (4)

Props

PropTypeOptionalDefaultDescription
valueType'number''percentage'-파이 차트를 구성할 데이터 값의 타입 (값 or 비율)
dataArray\<PieChartMapDataType>-PieChartMapDataType 데이터의 배열
colorsArray\<PieChartColorType>-PieChartColorType 데이터의 배열
pieChartStyleobject:heavy_check_mark:-pieChart의 스타일
rnumber:heavy_check_mark:-pieChart의 반지름, pieChart 크기를 결정
innerRadiusnumber:heavy_check_mark:1pieChart 중심점으로부터 내부 원의 크기 결정, 1 이상일 시 차트가 도넛 모형이 됨
onMouseOverfunction:heavy_check_mark:-마우스가 pieChart에 올라간 상태일 때 호출되는 콜백 함수
onMouseOutfunction:heavy_check_mark:-마우스가 pieChart에서 내려온 상태일 때 호출되는 콜백 함수
isDataSummaryVisibleboolean:heavy_check_mark:-기본 제공하는 pieChart 데이터 요약 박스으 노출 여부
PieChartMapDataType

정확한 위치 좌표(lon, lat) 혹은 지역 코드(regionCode) 둘 중 하나는 필수적으로 입력해야함.

PropTypeOptionalDefaultDescription
dataArray\<PieChartDataType>-PieChartDataType 데이터의 배열
lonnumber:heavy_check_mark:장소의 경도
latnumber:heavy_check_mark:-장소의 위도
regionCodenumber:heavy_check_mark:-장소의 지역 코드
regionNamestring:heavy_check_mark:-장소의 이름
rnumber:heavy_check_mark:-pieChart의 반지름, pieChart 크기를 결정
innerRadiusnumber:heavy_check_mark:-pieChart 중심점으로부터 내부 원의 크기 결정, 1 이상일 시 차트가 도넛 모형이 됨
PieChartDataType
PropTypeOptionalDefaultDescription
labelstring-데이터 레이블
valuenumber-데이터 값
PieChartColorType
PropTypeOptionalDefaultDescription
labelstring-pieChartDataType의 label과 맞추어 사용
colorstring-해당하는 label에 매칭되는 데이터를 나타낼 색상

Point Map

해당 장소에 대한 좌표 데이터를 받아 스타일 대로 나타내게 됩니다. html 스타일 속성을 전달할 수 있고, image 등을 전달할 수도 있습니다. ezgif com-gif-maker (8)

Props

PropTypeOptionalDefaultDescription
dataArray\<PointMapDataType>PointMapDataType 데이터
pointComponentReact Node.:heavy_check_mark:-포인트 컴포넌트, 이미지 전달 가능
pointStyleobject:heavy_check_mark:-포인트 스타일
onPointHoveredfunction:heavy_check_mark:-마우스 이벤트 발생시 호출하는 콜백 함수, 해당 포인트의 PointMapDataType 데이터 반환
PointMapDataType
PropTypeOptionalDefaultDescription
lonnumber장소의 경도
latnumber장소의 위도
namestring:heavy_check_mark:null장소명
descriptionstring:heavy_check_mark:null장소 설명

Bubble Map

ezgif com-gif-maker (2)

Props

PropTypeOptionalDefaultDescription
dataArray\<BubbleMapDataType>BubbleMapDataType 데이터
bubbleComponentReact Node:heavy_check_mark:버블 컴포넌트, 이미지 전달 가능
bubbleStyleobject:heavy_check_mark:버블 스타일
onBubbleHoveredfunction:heavy_check_mark:마우스 이벤트 발생시 호출하는 콜백 함수, 해당 버블의 BubbleMapDataType 데이터 반환
BubbleMapDataType

정확한 위치 좌표(lon, lat) 혹은 지역 코드(regionCode) 둘 중 하나는 필수적으로 입력해야함.

PropTypeOptionalDefaultDescription
lonnumber:heavy_check_mark:버블을 나타낼 장소의 경도
latnumber:heavy_check_mark:버블을 나타낼 장소의 위도
regionCodenumber:heavy_check_mark:버블을 나타낼 지역의 지역코드
namestring:heavy_check_mark:장소명
valuenumber:heavy_check_mark:데이터 값
componentReact Node:heavy_check_mark:버블 컴포넌트, 하나의 버블에만 적용됨

storybook

모든 개발 과정에서 Storybook를 적극적으로 활용하였습니다. UI를 확인하고 싶으시다면, storybook을 실행해주세요.

npm run storybook
// output: > start-storybook -p 6006