OpenStreetMap 데이터를 기반으로 경로 안내, 아이소크론, 행렬, 스냅핑 서비스를 제공하는 오픈소스 Java 라우팅 엔진입니다.
Project-OSRM/osrm-backend
OpenStreetMap 데이터를 기반으로 경로, 거리 행렬, GPS 맵 매칭 등을 계산하는 고성능 C++ 라우팅 엔진입니다.
대체할 수 있는 제품:Google Maps Platform Directions API
- 스타
- 8,195
- 포크
- 3,979
- 열린 이슈
- 374
- 마지막 커밋
- 5일 전
어떤 프로젝트인가요?
OSRM(Open Source Routing Machine)은 OpenStreetMap 도로망 데이터를 처리하는 C++ 라우팅 엔진입니다. HTTP API, C++ 라이브러리 인터페이스, Node.js 래퍼를 통해 기능을 제공하며 Python 바인딩도 사용할 수 있습니다.
엔진은 여섯 가지 서비스를 제공합니다. nearest는 좌표를 도로망에 스냅하고, route는 좌표 사이의 최단 시간 경로를 찾으며, table은 모든 지점 쌍 사이의 소요 시간이나 거리를 계산합니다. match는 오차가 있는 GPS 궤적을 도로에 스냅하고, trip은 그리디 휴리스틱으로 Traveling Salesman Problem을 풉니다. tile은 라우팅 메타데이터가 포함된 Mapbox Vector Tiles를 생성합니다.
프로젝트는 두 가지 전처리 파이프라인인 Multi-Level Dijkstra(MLD, 권장 기본값)와 Contraction Hierarchies(CH)를 지원합니다. 빠르게 시작할 수 있도록 Docker 이미지를 제공하며, 소스에서 빌드할 때는 의존성 관리에 vcpkg를 사용합니다.
핵심 기능
- 01OpenStreetMap 데이터를 기반으로 route, nearest, table, match, trip, tile 서비스 제공
- 02HTTP API, C++ 라이브러리, Node.js 및 Python 바인딩
- 03MLD 및 CH 전처리 파이프라인
- 04빠른 설정을 위한 Docker 이미지
- 05Lua 스크립트를 통한 사용자 지정 라우팅 프로필
활용 사례
- OpenStreetMap 데이터를 기반으로 자체 호스팅 라우팅 또는 내비게이션 백엔드 구축
- 물류 및 배차를 위한 대규모 이동 시간 또는 거리 행렬 계산
- 차량이나 피트니스 기기의 GPS 궤적을 도로망에 맵 매칭
- 소규모 차량 경로 문제 또는 TSP 방식의 방문 순서 문제 해결
빠른 시작
- 1
OpenStreetMap 추출 데이터를 다운로드합니다(베를린 예시)
wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf - 2
Docker를 사용해 car 프로필로 추출 데이터를 전처리합니다
docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf || echo "osrm-extract failed" - 3
추출 데이터를 분할합니다(그런 다음 README와 같은 방식으로 osrm-customize를 실행합니다)
docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-partition /data/berlin-latest.osrm || echo "osrm-partition failed" - 4
포트 5000에서 라우팅 HTTP 서버를 시작합니다
docker run -t -i -p 5000:5000 -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
사용 전 알아둘 점
- 대용량 OpenStreetMap 추출 데이터를 처리하는 데는 매우 오랜 시간이 걸릴 수 있습니다. 예를 들어 550 MB 파일은 약 30분이 걸릴 수 있습니다.
- 소스에서 빌드하려면 C++20 컴파일러, CMake 3.29 이상, vcpkg가 필요하며, 최초 configure 시 많은 종속 항목을 컴파일합니다.
토픽
자주 묻는 질문
- osrm-backend은(는) 무엇인가요?
- OpenStreetMap 데이터를 기반으로 경로, 거리 행렬, GPS 맵 매칭 등을 계산하는 고성능 C++ 라우팅 엔진입니다. OSRM(Open Source Routing Machine)은 OpenStreetMap 도로망 데이터를 처리하는 C++ 라우팅 엔진입니다. HTTP API, C++ 라이브러리 인터페이스, Node.js 래퍼를 통해 기능을 제공하며 Python 바인딩도 사용할 수 있습니다.
- osrm-backend은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- osrm-backend은(는) BSD-2-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- osrm-backend은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. osrm-backend의 마지막 커밋은 2026년 11월 2일입니다.
- osrm-backend은(는) 어디에 사용할 수 있나요?
- OpenStreetMap 데이터를 기반으로 자체 호스팅 라우팅 또는 내비게이션 백엔드 구축 물류 및 배차를 위한 대규모 이동 시간 또는 거리 행렬 계산 차량이나 피트니스 기기의 GPS 궤적을 도로망에 맵 매칭 소규모 차량 경로 문제 또는 TSP 방식의 방문 순서 문제 해결
- osrm-backend는 어떻게 설치하나요?
- OpenStreetMap 추출 데이터를 다운로드합니다(베를린 예시): wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf Docker를 사용해 car 프로필로 추출 데이터를 전처리합니다: docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf || echo "osrm-extract failed" 추출 데이터를 분할합니다(그런 다음 README와 같은 방식으로 osrm-customize를 실행합니다): docker run -t -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-partition /data/berlin-latest.osrm || echo "osrm-partition failed" 포트 5000에서 라우팅 HTTP 서버를 시작합니다: docker run -t -i -p 5000:5000 -v "${PWD}:/data" ghcr.io/project-osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
- osrm-backend은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Project-OSRM/osrm-backend
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
OpenStreetMap용 오픈소스 경로 탐색 엔진으로, Java 라이브러리 또는 경로·등시간대·맵 매칭 요청을 처리하는 독립형 웹 서버로 사용할 수 있습니다.
QGIS는 공간 데이터를 조회, 편집, 분석하고 지도화할 수 있는 무료 크로스 플랫폼 데스크톱 지리정보시스템입니다.
대중교통 일정에 자전거, 도보, 공유 자전거, 차량 호출을 결합해 경로를 안내하는 오픈소스 멀티모달 여행 계획 서버입니다.
OpenStreetMap 데이터를 이름과 주소로 검색하고 역지오코딩을 수행하는 오픈소스 지오코딩 서비스입니다.
실시간 항공기·선박·위성·지진·교통·공개 카메라를 사진처럼 사실적인 3D 지형에 표시하는 오픈소스 브라우저 지구본