2013-10-01 3 views
0

저는 200 개 이상의 다각형을 만들고 LocationListenerOnChanged()를 통해 위치를 얻었지만 현재 위치를 기반으로 어느 폴리곤인지 알고 싶습니다.위치 주소를 가져옵니다. w.r.t 다각형이 있습니다.

Latitude를 사용하여 2 마일마다 각 폴리곤 내에서 어떻게 확인합니까? 전체 프로세스를 더 빠르게 만들거나 안드로이드 OS에 inbuilt 기능을 추가하려면 어떻게해야합니까?

많은 안드로이드 맵 v2 관련 문서를 확인했지만 그것에 관한 정보는 얻지 못했습니다. 주제에 대한 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

+0

겹치는 폴리곤이 있거나 겹침없이 상호 배타적 인 폴리곤입니까? 폴리곤을 어디에 저장하고 있습니까? 앱에 있습니까? 아니면 클라우드 데이터베이스에서 가져 왔습니까? –

+0

Sir.CUrrently 답장을 보내 주셔서 감사합니다. 문자열에 안드로이드 애플 리케이션의 값을 저장하고 배열 (LatLng)로 변환하고 그들은 중복되지 않습니다 그들은 별도의 영역을 같은 경계를 공유 아마도. 어떤 도움을 주셔서 감사합니다. 고마워요. –

답변

2

android api v2에서 latlng이 다각형 내에 있는지 직접 확인할 방법이 없습니다. 그래서 당신은 다각형 안에 체크 내부로 알려진 수학 계산을해야합니다. 앱 둔화 모든 200 개 이상의 다각형에 대한 점을 확인, 귀하의 경우 Winding number method

하면,

1, Raycasting method

2 : 이전 글에서 제시 한 아래의 두 가지 방법을 확인하실 수 있습니다 검사 할 다각형 수를 줄이는 것을 고려할 수 있습니다. 우선, 각 꼭지점 이외의 각 다각형에 대해 대략적인 기하학적 중심을 저장합니다. 그런 다음 검사 할 새 위치를 얻으면이 위치와 모든 다각형의 기하학 중심 사이의 거리를 찾습니다. 이제 중심점이 점에 가장 가까운 폴리곤 (예 : 8) 만 가져 와서 위의 중 하나를 수행합니다. 다각형 내부의 점은 선택한 다각형을 확인합니다.

+0

안녕하세요 Tony 위의 솔루션에 감사드립니다. 그러나 레이 캐스팅 방법을 시도해 보았습니다. 포인트가 다각형 내에 있더라도 항상 거짓이 표시됩니다. 문제가있는 곳을 모르겠습니다. 나는 geopoints 및 LatLng에서 모두 시도했지만 아직도 작동하지 않는다면 코드를 붙이시겠습니까? 도와 줘서 고마워. –

+0

당신은 코드를 추가하여 폴리곤 안의 포인트를 확인하는 방법을 알려주십시오. –

+0

안녕하세요 토니 코드를 업데이트했습니다. 폴리곤을 클릭 한 후에도 false가 표시됩니다. 조사해보십시오. 시간과 노력에 감사드립니다. –

관련 문제