[OpenLayers + Node.js] 단순한 최단경로 Back-end 서버구축
* 이전글 "[OpenLayers] 단순한 최단경로 찾기"와 "[OpenLayers] 단순한 최단경로의 상세정보 단순처리하기"
에서 가중치(회전/비용/도로구분 등)없이 단순 도로중심선에 링크로만 구분하여 최단거리를 추출하였습니다.
서버에 의존하지않고 클라이언트에서 간단한 OpenLayers로만 해보았습니다.
* 서버용으로는 WPS와 pgrouting(PostGIS/PostgreSQL/GeoServer)를 사용해야하고, 중요한건 도로 네트워크를
매번 생성해야하며 요구조건에 맞아야 합니다.
* 그래서 이번에는 NodeJS로 서버모듈을 만들어 보았습니다. 물론 처리 속도는 클라이언트에서 하듯 출발점 찍는 순간
일정 영역의 도로네트원크 데이터를 미리 읽어와서 처리가 빨라보이듯이 서버단에서도 미리 읽어오거나 메모리에
담는 등 여러 방법으로 쿼리속도를 내면 최단거리 분석 속도를 높일 수 있습니다.
* NodeJS로 Back-end 서버구축으로 최단경로분석하기
- Node.js는 말만 JavaScript 란타임이지 뭐좀 할려면 추가 설치해야한다. 그리고 불안하다 조금 코딩이 엉키면
커멘드창이 닫기도 죽는다. 중요한건 OpenLayers API를 사용하지 못했다.(내가 답을 못구한건지 ㅠㅠ)
차라리 예전 게시글처럼 Delphi로 웹서비스(WebBroker 이용)기반으로 만들까 고민도 많았다.
(1) NodeJS설치
여러 OS등 플랫폼에 맞는 Node.js를 다운받아 설치 (https://nodejs.org/ko/download/)
서비스할 포트도 열어둔다 (제어판>Windows 방화벽>고급설정>인바운드규칙>새규칙에서 포트열기)

(2) npm로 NodeJS설정 및 추가 모듈 설치
Express Framework 설치, xmlhttprequest 사용할려면 설치, cors설치하고 app.js에 추가 코딩해야 JavaScript 에서 크로스도메인 해결.
OpenLayers는 추가 설치해도 서버단 js에서 호출하지도 못함.
npm init
npm install express xmlhttprequest cors
npm install --save-dev parcel-bundler
//npm install --save
//npm install --save-dev rollup
//npm run build
(3) app.js에 최단거리 코딩 및 실행
그냥 단순하게 설치폴더에 기본적으로 메인인 app.js에 최단거리모듈을 OL함수도 사용하지 않고 순수 JavaScript로 코딩 ㅠㅠ. 우와 열받는다 이놈의 코딩개발툴 환경....
node C:\Server\WWW\node_app\app.js 실행 (자동 실행을 위해 서비스에 올리지 않고 배치파일bat로 시작프로그램에 바로가기 등록)
아래그림은 클라이언트에서 OL함수로 최단거리 분석(적색)과 서버 Node.js에서 순수 JavaScript으로 분석(흑색)한 경과입니다.


* 주요소스는 원문참조 : https://cafe.naver.com/gisapplication/1032