일치하는 링크와 아이디어를 매핑 하시겠습니까? [닫은]


43

OpenStreetMap과 벡터 도로 네트워크를 사용하고 있으며 맵 매처 알고리즘을 구현하고 싶습니다.

현재 각 GPS 위치에 대해 가장 가까운 도로 구간을 검색하고이 이미지와 같이 해당 구간에 대한이 위치의 투영을 계산할 수 있습니다 (빨간색 핀은 순수한 GPS 위치입니다. 매핑 된 위치) :

여기에 이미지 설명을 입력하십시오

그러나 GPS의 정확도 부족으로 인해 때때로 매핑 된 위치가 세그먼트에서 다른 세그먼트로 점프하여 때때로 일치하지 않는 매핑 된 위치를 제공 할 수 있습니다.

내 현재 알고리즘은 매우 기본입니다 : 순수한 GPS 위치에서 가장 가까운 세그먼트를 가져 와서 매핑 된 일치 위치 가이 위치에 있다고 결정합니다. 나는 이것이 실제로 향상 될 수 있음을 알고 있습니다.

차량 방향을 고려하면지도 일치가 개선 될 수 있지만 지도 매처를 개선 할 수있는 다른 방법을 알고 있습니까?

링크 및 / 또는 오픈 소스 소프트웨어를 찾고 있습니까?


4
서클을 추가 할 수 있습니다. Google은 셀 수신을 사용하고 밝은 파란색 원을 만들어 대략적인 위치를 보여줍니다. 당신은 응용 프로그램이 잘 작동합니다. 당신이 당신의 GPS 지점에서 가장 가까운 선에 스냅 할 수 있습니다 벡터 데이터가있는 경우 - 폴 램지에 의해 포스트 참조 blog.cleverelephant.ca/2008/04/snapping-points-in-postgis.html
Mapperz

4
찾고있는 키워드는지도 일치입니다. 큰 주제.
Uffe Kousgaard

1
Uffe가 맞습니다.지도 일치합니다. 몇 가지 방법이 용지를 확인 : cens.ucla.edu/~mhr/cs219/maps/white00.pdf
lexicore

감사! lexicore, 입력 할 때 용지가 프린터로 전송됩니다. 개요를 볼 시간입니다. 링크 주셔서 감사합니다.
scrrr

또한 꼭짓점이 아닌 실제 도로를 따라 가면서 알고리즘을 향상시킬 것입니다.
Devdatta Tengshe

답변:


11

이미하고있는대로 선에 점을 투영하는 것은 PostGIS에서 직접 수행 할 수 있습니다. 나는 몇 시간 전에 여기에 썼다.

그러나 포인트가 오른쪽 세그먼트보다 잘못된 세그먼트에 더 가까운 경우 문제를 해결하려면 가능한 방법 일 수 있습니다.

  1. 점의 선 스트링 만들기
  2. 알고리즘으로 제안 된 솔루션을 사용하여 세그먼트별로 일치하지 않고 전체 라인을 일치시킵니다.

답장을 보내 주셔서 감사합니다. 프로젝션은 괜찮습니다 : 이미하고 있습니다 (ST_Closest를 통해 사용하지 않습니다. 사용하고있는 공간에서 사용할 수는 없지만 괜찮습니다). 나는 또한 당신이 언급 한 질문을보고 있었고 흥미로울 수있는이 "Hausdorff distance"의 존재에 대해 배웠습니다.
yonel

10

귀하의 질문과 다양한 답변을 읽은 후이 문제에 관심이있었습니다. Map-matching 알고리즘을 약간 읽은 후에 다음을 이해했습니다.

  • GPS 위치를 도로와 일치 시키려면 실제 도로 데이터가 벡터 형식이어야합니다.
  • 도로마다 무게가 다른 경우 도움이됩니다. 따라서 고속도로와 일치하는 포인트의 가능성이 높아지고 사이드 라인과 일치하는 확률이 높아집니다.
  • 당신은 역사와 GPS 읽기 속도를 가져와야합니다. 예를 들어 gps 지점이 오랫동안 측면 차선과 일치 한 경우이를 고려하여 고속도로와 직접 일치시키지 않아야합니다. 실제 매칭은 다양한 통계 기법을 사용하여 수행됩니다.

자세한 내용을 보려면 다음을 제안하십시오.


예, 또한 읽고 확장 할 수있는 간단한 알고리즘을 구현하면서 게임을 시작했습니다. 지금까지 OSM에서 일부 데이터를 다운로드했으며 내 목적에 가장 잘 저장하고 액세스하는 방법을 가지고 놀고 있습니다. 제 생각 엔 흥미로운 주제입니다. :) 작동하는 것이 있으면이 질문을 업데이트 할 것입니다. 또한 링크 주셔서 감사합니다!
scrrr

나는 웨이트를 사용할 때 조심해야한다. "고속도로와 일치하는 포인트는 사이드 라인과 일치할수록 더 높아질 것이다." ... 입력 데이터에 따라 달라지며 매우 잘못 될 수 있습니다.
underdark

@Devdatta, 두 번째 링크에서 404를 얻습니다. 그냥 편집하는 대신 대체 링크가 있습니까?
Chau

해당 기사에 대한 무료 액세스 링크가 없습니다. 그러나 학업 환경에 있다면. 이 기사는 빠른 검색 후 이용 가능해야합니다
Devdatta Tengshe


7

내 자신의 질문에 대답!

1- 이 주제에 관해 방금 찾은 멋진 .pdf :

http://safari.ce.sharif.edu/file/2011-06-06/259/2009_An%20off-line%20map-matching%20algorithm%20for%20incomplete%20map%20databases.pdf

또한 문서에 설명 된지도 매처C ++ 오픈 소스 구현에 연결됩니다 : http://eden.dei.uc.pt/~camara/files/mgemma.zip
(이것은 오프라인 맵 매처입니다. 제 이해는 입력으로 WHOLE 경로를 사용하여 맵 일치 위치를 계산하고 각 위치에 대해 즉시 수행 할 수는 없습니다).

2- 그런 다음,이 내용을 자세히 읽었으며 실제로 제 의견으로는 정말 좋습니다 : https://dspace.lboro.ac.uk/dspace-jspui/bitstream/2134/4860/1/velaga.pdf "개발 지능형 운송 시스템을위한 강화 된 무게 기반 토폴로지 맵 매칭 알고리즘 "
알고리즘이 명확하게 설명되어 있으며 무게 조정 값도 문서에 제공됩니다.


4

맵 매칭에 대한 많은 연구가 있습니다. 이 논문 은 2007 년 이전의 최근 연구에 대한 간략한 조사를 위해이 백서 를 참조하십시오 . 최근에는 숨겨진 Markov 모델을 기반으로 한 접근 방식이 정상적인 상황에서 잘 작동하는 것 같습니다. 예를 들어, 2009 년부터이 백서 를 확인하십시오 . 아이디어와 모델은 매우 단순하며 HMM에 익숙하지 않더라도 구현하기에 너무 많은 어려움을 겪지 않아야합니다 (이 경우 공황 상태에 빠지지 마십시오. 의 튜토리얼 및 소개 온라인)


1
내 대답에서 언급 한 맨발- 프로젝트는 @Nick 권장 논문을 기반으로 한다는 것을 깨달았습니다 .
nik

4

이 방법을 "벡터 conflation"이라고도합니다. Wiki 페이지 ( http://wiki.openstreetmap.org/wiki/Conflation )에는 "JOSM conflation plugin", "Potlatch 2 merging"과 같은 도로 벡터 conflation을 수행하기위한 일반적인 개요 및 목록 (Open Source) 소프트웨어 패키지가 있습니다. 도구 ","RoadMatcher "(OpenJUMP 용) 등


1
나는 항상 점이 선에 일치하는 대신 두 개의 선 레이어로 conflation이 있다고 생각했습니다. 정말 같은가요?
underdark

4

맵 일치 알고리즘의 경우 실시간 또는 오프라인 처리가 필요한지 여부에 따라 다릅니다. 후자의 경우 최첨단 알고리즘은 초당 1000 포인트를 처리 할 수 ​​있습니다. 메모리 요구 사항은 물론 적용 범위에 따라 다릅니다. 우리는 그 목적을 위해 지구의 OSM 도로 네트워크를 약 16Gb로 압축했습니다.

또한 맵 매칭경로 추론 을 구별해야합니다 . 고주파 또는 저주파 데이터에 따라 두 가지 별도의 프로세스가 있습니다. 상대적으로 적은 수의 포인트 (예 : 도시 상황에서 1km 당 1 데이터) 가있는 경우 일반적으로 장치가 어디로 이동하는지 추측하기 위해 수행해야 할 몇 가지 가정이 있기 때문에 경로 유추 입니다. 경로 추론은 일반적으로 어렵지만 최신 장치 / 데이터 수집 가격에는 문제가되지 않습니다.

OSM에서 직접 맵 매칭을 수행하는 API에 대해 내 프로파일을 확인할 수 있습니다. 토폴로지 매칭을 사용하고 예를 들어 플로팅 카 데이터와 잘 작동합니다.


사용중인 알고리즘을 확장 할 수 있습니까? 도로 네트워크 크기를 줄이는 것이 어떻게 도움이됩니까?
Devdatta Tengshe 2016 년

커버리지가 적을수록 메모리에 유지되는 네트워크가 작아집니다. 계산 속도가 약간 빨라집니다. 참조 : trb.metapress.com/content/p31485vw72645686
Fabrice Marchal

3

Strava Slide 는 도로 네트워크를 통한 누적 트랙 데이터가 "밸리"처럼 동작 할 수있는 방법과 제안 된 경로가 일련의 구슬처럼 "제자리에 떨어지는"방법을 설명합니다.


2

앞에서 언급 한 대부분의 프레임 워크를 테스트 한 후 맨발을 발견 하고 실제로 권장 할 수 있습니다. 그것은 숨겨진 마르코프 모델을 확률 적 맵 매칭 접근법으로 사용하고 (자세한 내용은 "지도에 자동차 퍼팅"에 설명되어 있음 ) Java로 구현됩니다. BMW의 CarIT 부서에서 오픈 소스이며 적극적으로 개발하고 있습니다.


2

주제를지도 일치라고합니다. 그러나 첫 번째 매우 좋은 근사치로 모든 GPS 포인트에 대해 가장 가까운 포인트를 검색하기에 충분할 것입니다 (올바른 방법으로 추측하는 수정 사항 없음).

graphhopper라는 내 오픈 소스 프로젝트는 iOS에서 작동하는 것이 아니며 ( 업데이트 : 이제 iOS에서도 작동 함) 원하는 기능을 갖춘 완벽한 Android 앱이 아닙니다. 그러나 서버 버전을 사용하여 iOS 앱을 빌드하거나 오프라인 Android 데모를 시작으로 사용할 수 있습니다. 나는 대략적인 프로토 타입이지만 놀랍게도 잘 작동 하는 맵 매칭 알고리즘을 여기 에서 발표했습니다 .


1

좋은 테스트 데이터를 시도하십시오. 대상 장치의 로깅 지점 외에도 고정밀 트랙 로깅 GPS를 추가로 사용하십시오. GPS 및 기본 OSM 데이터의 오류를 식별합니다. 합리적인 임계 값을 알면 알고리즘을 훨씬 쉽게 설계 할 수 있습니다.


1

해당 지역의 도로 데이터를 얻을 수있는 경우 FOSS를 사용한 자동 대량 스냅에 관심이있을 수 있습니다.

실시간으로 데이터를 플롯 할 것인지 또는 나중에 PC에서 일부 후 처리를 수행 할 것인지에 따라 GRASS가 도움이 될 수 있습니다.



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.