Sql server SQL Server空间数据

Sql server SQL Server空间数据,sql-server,spatial,Sql Server,Spatial,提前感谢您提供的任何见解。我不熟悉在SQLServer中使用空间函数。如果有人能为我指出解决问题的基本正确方法,我将不胜感激 我正在与一位客户合作,该客户负责监控从水路进入的气井。在某一天,一艘船沿着河流从a点行驶到B点。我将“路线”作为一系列可以绘制在地图上的横向/纵向值。我认为这将在SQLServer中用作行字符串 我还有一份已知油井的清单,以及它们的横向/多头头寸。我希望将这些记录存储在数据库中,并使用某种空间索引对Lat/Long进行索引。我不能100%确定如何正确索引该表,但它将包含L

提前感谢您提供的任何见解。我不熟悉在SQLServer中使用空间函数。如果有人能为我指出解决问题的基本正确方法,我将不胜感激

我正在与一位客户合作,该客户负责监控从水路进入的气井。在某一天,一艘船沿着河流从a点行驶到B点。我将“路线”作为一系列可以绘制在地图上的横向/纵向值。我认为这将在SQLServer中用作行字符串

我还有一份已知油井的清单,以及它们的横向/多头头寸。我希望将这些记录存储在数据库中,并使用某种空间索引对Lat/Long进行索引。我不能100%确定如何正确索引该表,但它将包含Lat/Long/WellName/Owner等列

该功能需要执行以下操作:给定船在给定日期内所走路线的纬度/长度(线串及其所有点),找到该线2000英尺范围内的所有井。工人们将从船上下来,到井边进行维护。他们每天将在河的不同河段工作

同样,我正在寻找关于Wells表(tblWells)需要是什么的方向性建议,并且还创建了一个存储过程,该存储过程接受线点的Lat/Long作为nvarchar(MAX)输入参数。目前,它只需要返回管线上任何点2000英尺范围内的所有油井

真诚地感谢所有花时间帮忙的人


最诚挚的问候…

首先,您需要一张井表:

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列上创建一个空间索引。玩转分辨率,但我猜,考虑到您的用例,前三个分辨率将是低的,最后一个是高的。尽管如此,还是要好好玩玩。

对不起,我不想对此发表评论。我不得不添加一个答案来添加后续问题。这是砰的一声;非常感谢。