현재지도 위치 근처에있는 일반 상점 목록을 표시하려고합니다.Google지도 + haversine 수식이있는 SQL Server의 현재 위치 근처에 장소
모든 것이 정상적으로 작동하지만 현재지도 위치에 인접한 곳이없는 SQL Server 데이터베이스에서 많은지도를 저장할 수 있습니다.
예 :
나는 DB에 독일에있는 상점이 있습니다
Venue Venue_Lat Venue_Lng
Bookstore 51.165712 10.451547
내가있는 하버 사인 수식을 사용하고 내 절차 [GetNearbyLocations] 가정하는 상점을 검색하기 위해 저장 현재 위치에서 50 마일 이내에 있다고 가정하면 반경 50 마일의 미국으로 현재 위치를 통과합니다.
Radius: 50
USA Lat: 38.5554745
USA Lng: -95.6649999
독일에서 상점이 호출됩니다. 심지어 50 마일 반경 내에 있지는 않지만. 수식이 100 % 정확하지는 않지만 이것이 보통입니까? 누구든지이 점에 대해 친절하게 조언을 해줄 수 있습니까? 감사.
SPROC의 일부 :
DECLARE @intMilesModifier int
SET @intMilesModifier = 3959
SELECT .... some fields,
[Venue_Lat],
[Venue_Long],
(@intMilesModifier*acos(cos(radians(@dmlLat))*cos(radians(Venue_Lat))*cos(radians(Venue_Long)-radians(@dmlLng))+sin(radians(@dmlLat))*sin(radians(Venue_Lat)))) AS distance
FROM [Stores] a
WHERE (@intMilesModifier*acos(cos(radians(@dmlLat))*cos(radians(Venue_Lat))*cos(radians(Venue_Long)-radians(@dmlLng))+sin(radians(@dmlLat))*sin(radians(Venue_Lat)))) < @Radius
내 실수이지만 이전에 실제로 동일한 결과를 산출하는 하베스틴 수식을 사용했습니다. 어쨌든 내 게시물을 편집했습니다. – k80sg
감사. 수식이 맞다고 생각합니다. 오류가 제 끝 부분에 있는지 확인하기 위해 귀하의 측면에서 직접 시도해 볼 수 있습니까? – k80sg
실행해야하는 코드가 수정되었습니다. SQL 서버가 없으므로 실행할 수 없습니다. –