Repolode
Project-OSRM

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. 1

    OpenStreetMap 추출 데이터를 다운로드합니다(베를린 예시)

    wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf
  2. 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. 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. 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 통계는 매일 갱신됩니다.

관련 프로젝트

QGIS는 공간 데이터를 조회, 편집, 분석하고 지도화할 수 있는 무료 크로스 플랫폼 데스크톱 지리정보시스템입니다.

데이터·분석#gis#mapping#geospatial
1.5만+50 이번 주3.6천C++GPL-2.0활발히 관리됨업데이트 10시간 전