2013-12-10 2 views
-1

인터넷을 사용하지 않고 가장 가까운 병원의 위치를 ​​찾는 안드로이드 프로그램을 개발하려고합니다. 대신 안드로이드 장치에 저장된지도를 사용하고 싶습니다. 이것이 가능한가? 그렇다면 누구나 코드를 참조 할 수 있습니까?저장된지도를 사용하여 가장 가까운 병원 찾기

Google API를 사용하는 유사한 프로그램을 성공적으로 개발했습니다. 즉, 서버에 연결하여 인터넷을 사용한다는 의미입니다. 나는 this 링크의 소스 코드를 재사용했다.

그러나 내 사용자가 인터넷에 접속하지 못하고 가장 가까운 병원을 찾는 것이 시급한 경우도 있습니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

1

또 다른 훨씬 간단한 해결책은 각 병원의 좌표를 파일에 저장하는 것입니다. .

Hospital Name, latitude, longitude, Adress Optional 

그런 간단한 계산 CLLocation distanceTo를 사용하여 모든 병원()에 시야 거리의 라인 : 응용 프로그램에서 은 당신의 파일을 읽을

가능한 파일 포맷을 시작합니다. 그런 다음 거리별로 정렬하십시오.

가장 짧게 가져갑니다. 도로 거리가 아니지만, 강이나 철도가없는 경우 작동합니다.

+0

직접 언급 한 정보를 저장하는 것이 유일한 왼쪽 옵션입니다. 온라인 데이터베이스에는 모든 장소가 포함되어 있으며 파일이 아주 많습니다. XML을 파싱하는 동안 Java가 힙 메모리를 잃게됩니다. –

0

확실히 가능합니다. 오프라인지도 데이터를 사용해야합니다.지도 데이터는 OpenStreetMap 프로젝트에서 가져올 수 있습니다. 사용자가 초기 앱 설치 후 다운로드 할 영역을 선택하게하고 데이터를 항상 사용할 수있게하는 것이 좋습니다.

나중에 위치 API를 사용하기 위해 인터넷 연결이 필요하지 않습니다. 당신은 다른 좌표 (병원의 ..)까지의 거리를 계산할 수있는 좌표를 얻을 것입니다.

분명히 병원 위치의 하드 코드 된 목록을 만드는 것이 어려울 것입니다 (업데이트는 가능하지만 인터넷이있을 때 응용 프로그램이 새 목록을 다운로드 할 수 있는지 확인하십시오 (예 : XML 파일 다운로드).

+0

OpenStreetMap에서 전체 데이터베이스 파일 (31GB)에 액세스 할 수있었습니다. 나는 지금 당장 나의 나라를위한 파일 만 필요로한다. 링크를 제공해 주시겠습니까? 위도, 위도 및 각 병원 부근이 필요합니다. –