2021. 9. 15. 01:15ㆍ개발/OSRM
OSRM 은 Open Source Routing Machine 의 약자로 Routing Machine을 open source 로 만들어 둔 프로젝트이다.
Naver Map이나 Google Map 같은 경우 API 호출 건당 얼마씩 걷어간다.... Naver 의 경우 한달에 몇건까지 무료이고, 넘어가면 얼마씩 비용이 청구된다.
그에 비해 OSRM은 open source이므로 범위내에서 원하는 로직으로 customization도 가능하고, 가격 측면에서도 장점을 가져갈 수 있게 된다.
그래도 Naver Map은 OSRM보다 훨씬 잘되어있지 않을까라는 생각이 들 수 있다. 물론, 더 많은 고도화가 되어있겠지만 base는 OSRM을 채택한 모습도 볼 수 있었다.
https://deview.kr/2020/sessions/376
그 만큼 OSRM은 어느정도 신뢰도를 바탕으로 정보를 제공해주며, C기반으로 되어있어 연산속도도 꽤 괜찮게 나올거라 생각된다.
아래 OSRM demo page에서 간단하게 어떻게 동작하는지도 볼 수 있다.
출발지와 목적지를 입력하고, 이동형태(도보, 자전거, 자동차)를 선택해주면, OSRM에서 연산후 오른쪽 summary 와 같이 각각의 길에서 가야하는 방향과 함께 경로를 알려준다.
API 사용해보기
아래 사이트에서 예제와 함꼐 API 사용법에 대해 알려주고 있다.
직접 개발환경에 map data, OSRM build, http server를 구성해서 돌려도 되지만, 간단하게 테스트해볼 때는 아래 링크를 통해 이용하는 것이 훨씬 편해보인다.
http://project-osrm.org/docs/v5.22.0/api/#general-options
driving 경로 탐색
아래 예시는 3개의 목적지를 가지고 계산하는 방법이다.
# Query on Berlin with three coordinates:
curl 'http://router.project-srm.org/route/v1/driving/13.388860,52.517037;13.397634,52.529407;13.428555,52.523219?overview=false'
curl을 사용한다면 위 명령어를 그대로 복붙해서 사용하면 되고, curl환경이 없는 경우에는 브라우저에 그대로 복붙해도 결과값을 확인할 수 있다.
출력 예시
도보 경로인 경우 API
도보 경로를 알고싶을때는 쿼리문에 "steps=true" 를 추가해주면 된다.
예시
http://router.project-osrm.org/route/v1/driving/127.105399,37.3595704;127.108081,37.363186?overview=false&steps=true
'개발 > OSRM' 카테고리의 다른 글
OSRM docker 설치하고 실행하기 (1) | 2021.09.27 |
---|