도시에 다른 사용자의 위치 정보를 1000000 개 저장하는 데이터베이스가 있다고 가정합니다. 목록이나 배열을 사용하여 모든 지오 코딩을 유지하고 거리를 하나씩 비교하는 경우 서버에서 SearchNearbyUsers(myLocation, 50)
명령을 실행하는 것은 힘들 것입니다.서버에서 "근처 사용자 검색"기능 구현
서버는 Web API 2를 사용하여 C#으로 코딩되었습니다. Geolocations와 같은 계산을 수행하도록 설계된 라이브러리가 있습니까?
사용할 수있는 라이브러리가없는 경우이 계산을 쉽게하기 위해 어떤 데이터 구조를 사용해야합니까? 나는 전에 R-tree을 보았지만 솔직히 말해 나는 논리를 분명히 이해하지 못하고 상당히 복잡해 보인다.
public class GeoLocation
{
public float latitude { get; set; }
public float longitude { get; set; }
}
는 위도와 경도 모두는 클라이언트가 전송됩니다 :
이 같은 위치 정보 클래스는 모습입니다. 값은 navigator.geolocation.getCurrentPosition()
을 통해 얻습니다.
MongoDB 또는 MySQL과 같은 데이터베이스 시스템을 사용하는 경우 작업을 수행 할 수 있습니다. 먼저 설정해야합니다. MySQL의 경우이 장을주의 깊게 읽으십시오 : http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html. 그렇지 않으면 (그리고 당신은 좋은 이유가 있기를 바란다.) R-trees는가는 길이다. 당신은 그것들을 공부해야 할 것이다! – Rerito