我们有一个包含地点及其纬度和经度的表格。使用经度和纬度在SQL Server 2008中的两个位置之间的返回距离
我们试图在SQL Server 2008中创建一个函数,以特定的经度和纬度为中心点列出未来25公里内的地点。
我是游荡,如果这是启动和测试我们的功能,并得到一个中心点之间的当前距离(当前位置)和目标位置(@纬度/ @经度)的好方法:
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
这是正确的还是我们错过了什么?
什么是4326?我试图看到MSDN,但没有任何有关它的信息。 –
4326是世界大地测量参考系统的空间参考ID。有关更多信息,请参阅http://technet.microsoft.com/en-us/library/bb933811.aspx http://en.wikipedia.org/wiki/SRID和http://en.wikipedia.org/wiki/WGS84 –