Sql server SQL Server空间数据
提前感谢您提供的任何见解。我不熟悉在SQLServer中使用空间函数。如果有人能为我指出解决问题的基本正确方法,我将不胜感激 我正在与一位客户合作,该客户负责监控从水路进入的气井。在某一天,一艘船沿着河流从a点行驶到B点。我将“路线”作为一系列可以绘制在地图上的横向/纵向值。我认为这将在SQLServer中用作行字符串 我还有一份已知油井的清单,以及它们的横向/多头头寸。我希望将这些记录存储在数据库中,并使用某种空间索引对Lat/Long进行索引。我不能100%确定如何正确索引该表,但它将包含Lat/Long/WellName/Owner等列 该功能需要执行以下操作:给定船在给定日期内所走路线的纬度/长度(线串及其所有点),找到该线2000英尺范围内的所有井。工人们将从船上下来,到井边进行维护。他们每天将在河的不同河段工作 同样,我正在寻找关于Wells表(tblWells)需要是什么的方向性建议,并且还创建了一个存储过程,该存储过程接受线点的Lat/Long作为nvarchar(MAX)输入参数。目前,它只需要返回管线上任何点2000英尺范围内的所有油井 真诚地感谢所有花时间帮忙的人Sql server SQL Server空间数据,sql-server,spatial,Sql Server,Spatial,提前感谢您提供的任何见解。我不熟悉在SQLServer中使用空间函数。如果有人能为我指出解决问题的基本正确方法,我将不胜感激 我正在与一位客户合作,该客户负责监控从水路进入的气井。在某一天,一艘船沿着河流从a点行驶到B点。我将“路线”作为一系列可以绘制在地图上的横向/纵向值。我认为这将在SQLServer中用作行字符串 我还有一份已知油井的清单,以及它们的横向/多头头寸。我希望将这些记录存储在数据库中,并使用某种空间索引对Lat/Long进行索引。我不能100%确定如何正确索引该表,但它将包含L
最诚挚的问候…首先,您需要一张井表:
create table dbo.Wells (
WellId int identity not null,
Name varchar(50) not null,
Owner varchar(50) not null,
Location geography not null
)
然后是在给定路径一定距离内搜索油井的程序:
create procedure dbo.FindWells
(
@Path geography,
@Distance float
) as
begin
declare @buffer geography = @Path.STBuffer(@Distance);
select WellId
from dbo.Wells
where @buffer.STContains(Location);
)
如果你真的想通过你的路径作为一个varchar,去吧;只需使用geography::STLineFromText
或类似的工具将其转换为地理实例
对于表上的索引,在Location列上创建一个空间索引。玩转分辨率,但我猜,考虑到您的用例,前三个分辨率将是低的,最后一个是高的。尽管如此,还是要好好玩玩。对不起,我不想对此发表评论。我不得不添加一个答案来添加后续问题。这是砰的一声;非常感谢。