Chúng tôi có một bảng với các địa điểm và vĩ độ và kinh độ của chúng.Khoảng cách trả về giữa hai vị trí trong SQL Server 2008 sử dụng vĩ độ và kinh độ
Chúng tôi đang cố gắng tạo một hàm trong SQL Server 2008 để liệt kê các địa điểm trong vòng 25 km tiếp theo bằng cách sử dụng vĩ độ và kinh độ cụ thể làm điểm trung tâm.
tôi đã lang thang nếu điều này là một cách tốt để bắt đầu và kiểm tra chức năng của chúng tôi và nhận được khoảng cách hiện tại giữa một điểm trung tâm (vị trí hiện tại) và địa chỉ đích (@ vĩ độ/@ vĩ độ):
ALTER FUNCTION [dbo].[GetDistanceFromLocation]
(
@myCurrentLatitude float,
@myCurrentLongitude float,
@latitude float,
@longitude float
)
RETURNS int
AS
BEGIN
DECLARE @radiusOfTheEarth int
SET @radiusOfTheEarth = 6371--km
DECLARE @distance int
SELECT @distance = (@radiusOfTheEarth
* acos(cos(radians(@myCurrentLatitude))
* cos(radians(@latitude))
* cos(radians(@longitude) - radians(@myCurrentLongitude)) + sin(radians(@myCurrentLatitude))
* sin(radians(@latitude))))
RETURN @distance
END
Có đúng hay chúng ta đang thiếu gì đó?
4326 là gì? Tôi đã cố gắng để xem MSDN nhưng không có bất kỳ thông tin về nó. –
4326 là ID tham chiếu không gian cho hệ thống tham chiếu trên thế giới. Để biết thêm thông tin, hãy xem http://technet.microsoft.com/en-us/library/bb933811.aspx http://en.wikipedia.org/wiki/SRID và http://en.wikipedia.org/wiki/WGS84 –