MySQL 원격 서버의 DB에 300 개의 긴 숫자가 저장되어 있습니다. 원격으로 내 DB에 오래, 내 휴대 전화와 위도에서 현재 위도와 경도의 차이를 계산하고 싶습니다. O안드로이드의 위도와 경도
이것을 달성하는 가장 좋은 방법은 무엇입니까?
나는 휴대 전화에서 현재 위도와 경도를 보내고 계산을하고 그 차이를 되돌려 보내고 있다고 생각하고 있었습니까?
더 좋은 방법이 있습니까?
감사합니다.
MySQL 원격 서버의 DB에 300 개의 긴 숫자가 저장되어 있습니다. 원격으로 내 DB에 오래, 내 휴대 전화와 위도에서 현재 위도와 경도의 차이를 계산하고 싶습니다. O안드로이드의 위도와 경도
이것을 달성하는 가장 좋은 방법은 무엇입니까?
나는 휴대 전화에서 현재 위도와 경도를 보내고 계산을하고 그 차이를 되돌려 보내고 있다고 생각하고 있었습니까?
더 좋은 방법이 있습니까?
감사합니다.
300 데이터 포인트가 많지 않습니다. 50,000 이상의 앱이 있는데 문제가되지 않습니다.
원격 서버의 데이터베이스를 전화기 (또는 어쨌든 열의 하위 집합)로 보냅니다. 내 자신의 응용 프로그램에서
, 내가 효율적으로 해싱
sector = (lat+90)*360 + (lon+180);
와 부문과 할당 된 섹터 번호 ° 1 ° X1로 세계를 나누었다. 해시 코드는 데이터베이스의 일부입니다.
그러면 근처의 데이터 포인트를 찾고 싶을 때 현재 위도와 경도의 섹터 번호와 인접한 8 개의 섹터를 계산합니다. 그런 다음 데이터베이스 검색을 9 개 섹터로 제한합니다.
그런 다음 해당 섹터의 데이터 포인트를 데이터베이스에 쿼리하고 현재 위치와 데이터 포인트 사이의 거리를 계산하면됩니다.
휴대 전화에 데이터베이스를 다운로드하는 데 일회성 비용이 있지만 나중에 상당한 시간과 대역폭을 절약 할 수 있습니다.
위치 수가 제한되어있는 경우 응용 프로그램이 다시 시작될 때 로컬 메모리에 해시/캐시합니다. 그렇지 않으면 전화가 lon-lat 인 서버를 호출하고 서버가 반환하도록 웹 서비스를 작성하십시오 거리. – alfasin