2D绑定箱查询
回答
SQL Server 2008
支持GEOGRAPHY
数据类型。
,可以储存lat, lon
在此数据类型的一列,在它创建一个SPATIAL
索引和查询中使用它:
SELECT m.*
FROM mytable
ON coords.STDistance(@mypoint) <= @mydistance
乍得正在研究2003年,它没有空间索引。 – 2010-02-20 00:03:32
@Byron:好像我错过了'SQL Server 2003'的发布:) :) – Quassnoi 2010-02-20 07:11:10
是的。我也是如此。:)我的意思是2005年,但现在我读了这个问题,他使用的是Windows Server 2003,并且从未提及他的SQL版本号。 – 2010-04-30 13:24:29
此问题不应该是社区wiki。如果可以的话,切换它。无论哪种方式,这是你的答案。
@Quassnoi为SQL 2008提供了一个很好的解决方案,但你要求的是2003,对吗? 2003年的地理支持与2008年不一样。您必须像我一样推出自己的产品。这并不难,这取决于您所需的准确性水平。下面是我想出了基于流行的公式两套坐标之间计算距离的标量函数:
-- =====================================================================
-- Author: Byron Sommardahl
-- Create date: June 15, 2007
-- Description: Calculates the distance between two sets of coordinates.
-- ======================================================================
CREATE FUNCTION [dbo].[Distance]
(
@lat1 float,
@long1 float,
@lat2 float,
@long2 float
)
RETURNS float
AS
BEGIN
RETURN (3958*3.1415926*sqrt((@[email protected])*(@[email protected]) + cos(@lat2/57.29578)*cos(@lat1/57.29578)*(@[email protected])*(@[email protected]))/180);
END
GO
要使用此功能,只需使用SELECT养活你的坐标:
SELECT dbo.Distance(MyPlace.Lat, MyPlace.Long, TheirPlace.Lat, TheirPlace.Long);
然后,您可以检查产品是否位于焦点的某个半径范围内。不完全包围盒子,但它会让你朝着正确的方向前进。
没有SQL Server 2003 – Chris 2010-04-29 05:00:23
@Chris:我的错误。我的意思是2005年。确保我的版本号码混淆! – 2010-04-30 13:21:53
- 1. 2d装箱Java?
- 2. 删除查询绑定?
- 3. PyQt SQL查询绑定
- 4. CodeIgniter - 查询绑定“order by”
- 5. 查询箱子时卡住
- 6. CodeIgniter - 查询绑定“IN”参数
- 7. 绑定LINQ查询到WPF窗口
- 8. Android的SQLite原始查询绑定
- 9. 绑定参数到mysql查询
- 10. 问题与查询,Redland和python绑定
- 11. 将php变量绑定到pdo查询
- 12. 绑定到linq查询,silverlight 4
- 13. 绑定.sdf查询到列表框
- 14. PHP select查询没有绑定
- 15. Laravel如何获取绑定的查询?
- 16. Codeigniter中的SQL LIKE的查询绑定
- 17. Qt MySQL查询 - 无法绑定值
- 18. asp.net查询字符串数据绑定
- 19. gridview行绑定到linq查询
- 20. Android:SQLite查询不绑定整数参数?
- 21. 将SolrNet查询结果绑定到GridView
- 22. 绑定LINQ查询到的DataGridView
- 23. 多个查询然后单独绑定?
- 24. 绑定LINQ查询结果直放站
- 25. UpdatePanel绑定我的查询字符串
- 26. 获取查询模型绑定MVC ASP.net
- 27. SQL查询的绑定数据
- 28. 将查询结果绑定到datatablde
- 29. 无法将子查询别名与外部查询绑定
- 30. LINQ XML查询:如何执行绑定查询?
我不认为我曾经这样说过,但这个话题不应该是一个维基。 – 2010-02-19 17:52:26
同意,这是**不是**维基的主题。 – casperOne 2010-02-19 17:55:47
没有MS Server 2003 R2这样的东西。 什么是“弧度位置搜索”? – VladV 2010-04-30 13:59:59