2014-12-30 2 views
0

내가 가진 :(구글지도 - 안드로이드) 예를 들어

  • 시작 (51.533407, -0.203948)
  • 점 (51.531966을, -0.210987)
  • 단부 (51.530951, -0.216823)
  • 원점 (51.533487, -0.187812)
  • 대상 (51.529189, -0.220814)

"점"이 "시작점"과 "끝점"사이에 있고 "출발점"과 "시작점", "끝점"및 "대상 지점 사이가 아닌 것을 어떻게 알 수 있습니까?

이미 시도 : 좌표 사이

  • 최소 거리 - 잘못된 결과를 얻을 수 있기 때문에, 해결책 아니다
  • Directions API의 'html_instruction'과 거리 이름 (기능 이름, 도로 정보, 주소 정보)을 비교하는 것은 매번 작동하지 않으며 때로는 거리 이름이 null입니다.
  • Geocode API -> 쓸모없는 "long_name"("address_components")의 거리 이름 (기능 이름, 도로, subthoroughfare - 주소)을 비교합니다. "시작"및 "끝"과 때로는 좌표를 가져올 수 없기 때문에 거리 이름이 null입니다 (예 : 마을).

다른 아이디어? 이미 인터넷에서 검색했지만 필요한 항목을 찾을 수 없습니다.

는 맥심에게 감사

이미지 링크 : google map

+0

나는 당신의 요구 사항에 대한 그림을보고 싶습니다. 나는 당신이 묻는 것에 대한 그림을 그릴 수 있다면 질문에 대답 할 수 있다고 생각합니다. – danny117

+0

평판이 10 점이 아니기 때문에 이미지를 게시 할 수 없습니다. http://s14.postimg.org/yshk16mi9/map_android.png – Maxim

+0

http : //en.m.wikipedia .org/wiki/Distance_from_a_point_to_a_line. 시작과 끝 사이의 점과 선 사이의 거리, 원점을 시작하는 시점과 끝점과 목적지 사이의 점과 선 사이의 거리 사이의 점과 선 사이의 거리를 계산할 수 있습니다. – danny117

답변

0

이 당신 개까지 당신이 코드를 구현하는 방법 (I 안드로이드의 구글 플레이에서 제공하는 지오 펜싱 API를 사용하는 것이 좋습니다는 단지 분석적 솔루션, 서비스 라이브러리).

  • "점"이 원의 중심이라고 생각하십시오.
  • 가까운 지점을 찾으십시오. 예를 들어 "시작"을 참조하십시오.
  • 거리를 반경으로 간주하고 원을 그립니다.
  • 이제 서클 내의 모든 좌표 (점)를 알 수 있습니다.
  • Geofence (원)에 포함 된 모든 점까지 중심으로부터 거리를 찾습니다.
  • "point"거리로 각각 빼십시오.
  • 빼기 후에 얻은 최소 거리는 "점"의 반대 지점이됩니다.
  • 따라서 두 점 사이에 "점"이 놓여 있음을 알 수 있습니다. "포인트"& 사이에 그려 반경에있는 지오 펜스에는 coordintes가없는 경우

는 "시작"당신이 먼저 좌표 찾을 해달라고 시간까지 반경을 증가시킨다. 이것은 "포인트"& "시작"외에 다른 포인트입니다.

희망이 도움이 될 것입니다!