相关疑难解决方法(0)

11
推荐指数
1
解决办法
1万
查看次数

从MSSQL数据库表中获取最近的经度和纬度?

好的,我已经搜索了SO和谷歌,但还没有真正找到明确的答案,所以把它扔到那里为SO社区.

基本上我有一个针对特定兴趣点的经度和纬度表,sql查询将知道你当前所在的位置(这将是表格中的一个,作为参数传入),因此它需要计算并将最接近纬度和经度的一行返回到传入的一行.

我要求这一切都在MSSQL(2012 /存储过程)而不是在调用应用程序(这是.NET)中完成,因为我听说SQL处理此类查询通常比.NET更快?

编辑:

我找到了STDistance函数,它给出了位置之间的里程数,例如:

DECLARE @NWI geography, @EDI geography
SET @NWI = geography::Point(52.675833,1.282778,4326)
SET @EDI = geography::Point(55.95,-3.3725,4326)
SELECT @NWI.STDistance(@EDI) / 1000
Run Code Online (Sandbox Code Playgroud)

但是我不想迭代遍历表中的所有纬度/经度,因为这对于性能来说肯定会很糟糕吗?

我也试过转换下面的一个注释链接中指出的一个例子(这是MYSQL而不是MSSQL)但是我收到一个错误,代码如下:

DECLARE @orig_lat decimal(6,2), @orig_long decimal(6,2), @bounding_distance int
set @orig_lat=52.056736; 
set @orig_long=1.14822; 
set @bounding_distance=1;

SELECT *,((ACOS(SIN(@orig_lat * PI() / 180) * SIN('lat' * PI() / 180) + COS(@orig_lat * PI() / 180) * COS('lat' * PI() / 180) * COS((@orig_long - 'lon') * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS 'distance' …
Run Code Online (Sandbox Code Playgroud)

sql t-sql database sql-server sql-server-2012

6
推荐指数
2
解决办法
1万
查看次数

是表中存储的项目半径范围内的当前位置?

我有一个表,每行存储lon/lat/radius(英里).我想弄清楚的是如何只选择我当前点所在的行.

这与查询当前位置的给定半径内的位置相反,而实际上我想查询当前点所在的位置.

这里的任何帮助将不胜感激.

php mysql gps geolocation

3
推荐指数
1
解决办法
522
查看次数

标签 统计

sql ×2

sql-server ×2

t-sql ×2

database ×1

geolocation ×1

gps ×1

mysql ×1

php ×1

sql-server-2012 ×1