2014-02-11 2 views
1

나는 위도/경도가있는 위치 목록을 저장하기 위해 Azure 모바일 서비스를 사용하고 있습니다. 이 목록에는 전국에 퍼져있는 수천 개의 위치가 포함될 수 있습니다.하늘색 모바일 서비스를 사용하여 가까운 위치를 찾는 방법

응용 프로그램이 시작되면 현재 위치에 '근접한'위치 목록을 찾고 싶습니다 (예 : 5km 이내).

나는 다음과 같은 성명 시도 :

items = await _itemTable.Where(item => 
    ((Math.Abs(item.Latitude - LastUserLocation.GeoPoint.Latitude) < 0.001) && 
    (Math.Abs(item.Longitude - LastUserLocation.GeoPoint.Longitude) < 0.001)) 
    ).ToListAsync(); 

을하지만, 기본적으로 Math.Abs를 사용할 수 없다는 오류가 발생했습니다. 문서를 더 자세히 살펴보면 Where 절에 넣을 수있는 작업이 매우 제한적으로 나타납니다.

그럼 누구든지이 문제를 해결하는 방법에 대한 제안이 있습니까?

답변

1

이야, 푸른 모바일 서비스와 위치 정보에 대한 지원은 정확히 턴키 없습니다. 그것은 말하기에, 성취하기가 아주 어려운 것이 아닙니다. 본질적으로 위도와 경도 값을 테이블 끝점/사용자 지정 API에 전달하고 mssql 모듈을 사용하여 실행하는 사용자 지정 SQL 쿼리에 매개 변수로 사용해야합니다. 여기 정확히하고 싶은 위대한 예가 있습니다 : http://code.msdn.microsoft.com/windowsapps/Geolocation-sample-end-to-5d9ee245.

0

위의 코드는 lat/long을 사용하고 위치 목록을 반환하는 사용자 정의 API 호출로 옮길 것입니다. 쿼리 로직을 JavaScript로 이식하고 서버 측에서 실행 해 볼 수 있습니다.

그러나 실제로 SQL 데이터베이스의 Geography 열 유형과 지형 공간 기능을 활용하여 계산을 수행 할 수 있습니다. 다음은이 작업을 수행하는 방법에 대한 단계별로 단계 ... 지금 현재로

http://code.msdn.microsoft.com/windowsapps/Geolocation-sample-end-to-5d9ee245

관련 문제