1

Google지도에 KML 파일을로드하는 중지도에 볼록 폴리곤으로 표시됩니다.
또한 사용자 위치가 있습니다. 기본적으로 사용자가 다각형 가장자리 (볼록 다각형) 중 하나에 있는지를 알고 싶습니다.
위치 서비스가 100 % 정확하지 않기 때문에 위치가 가까운 경우 (가장자리가 15m 먼 거리) - 좋습니다 :점이 볼록 폴리곤 모서리 (또는 근처)에 있는지 확인하십시오.

제 해결책은 다음과 같은 함수 y = f (x)를 2 개의 꼭지점을 계산 한 다음 사용자 위치가 f (x) + a와 f (x) -a보다 작은 지 확인합니다.

나는 뭔가를 놓치고있는 것처럼 느껴지고 이미 내 문제를 해결하기위한 더 나은 (그리고보다 정확한) 방법이 있거나 안드로이드 용 Java 라이브러리도 이미이 문제를 해결해야합니다.

감사합니다 :)

답변

0

당신은 점으로부터 라인 세그먼트 (segment)까지의 거리를 결정하는 기능을 구현해야합니다. 웹상에서 코드를 찾을 수 있습니다 (예 : 'Shortest distance between a point and a line segment'). 그런 다음 다각형의 각 세그먼트를 반복합니다. 다각형이 nonconvex 인 경우에도 작동합니다.

실제로 볼록한 다각형의 시간 복잡성을 향상시킬 수는 있지만 구현 노력을 기울일 가치는 없을 것입니다.