Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server地理空间,沿线字符串查找点的位置_Sql_Sql Server_Geospatial_Geo - Fatal编程技术网

SQL Server地理空间,沿线字符串查找点的位置

SQL Server地理空间,沿线字符串查找点的位置,sql,sql-server,geospatial,geo,Sql,Sql Server,Geospatial,Geo,我们正在研究将原型迁移到SQL Server(azure)中 我们有也有M值的线字符串。我们想做的是给另一个M值,找出它的地理位置 为了帮助您进行可视化,这里有一个真实的示例: 我有一个表示飞行路径的线字符串。由于航班上下移动,飞机实际移动的距离与线串的总长度不同。我们已经将M值作为线串的一部分进行了校准,但需要能够在给定事件发生的位置绘制线串。关于这个事件,我们所知道的只是它的M值 SET@g=geometry::stgeomefromtext('LINESTRING(1 0 NULL 0,

我们正在研究将原型迁移到SQL Server(azure)中

我们有也有M值的线字符串。我们想做的是给另一个M值,找出它的地理位置

为了帮助您进行可视化,这里有一个真实的示例:

我有一个表示飞行路径的线字符串。由于航班上下移动,飞机实际移动的距离与线串的总长度不同。我们已经将M值作为线串的一部分进行了校准,但需要能够在给定事件发生的位置绘制线串。关于这个事件,我们所知道的只是它的M值

SET@g=geometry::stgeomefromtext('LINESTRING(1 0 NULL 0,2 2 NULL 5,1 4 NULL 9,3 6 NULL 15)'0)

给定类似于上述的情况,M值为8的点的纬度和长度是多少

这应该是相当于postgis的

M值不是时间,而是距离。应该理解的是,该距离是任意的,与线的长度没有直接关系,并根据已知点进行校准。这是因为该数据集基于历史数据,按照今天的标准,这些数据根本不准确


*注意:我不确定是否已将Z或M值置零。我们在这里考虑的额外参数仅为M。

我已经多次阅读了初始问题和示例,但我很难弄清楚您实际上在问什么。您能否提供一个示例LineStrings,其中包含您试图回答(或使用)LineStrings的代表性查询(不一定是SQL查询)。如果你像我一样,一张图片会有所帮助。因此,在你的应用程序中,你使用
M
作为“时间流逝”的某种模拟。您想要找到一个具有给定
M
值的点,或者,如果
M
值没有用于直线上的任何点,您想要在两个值最接近的点之间应用(线性?)插值?令人惊讶的是,由于你正在应用对
M
的解释,所以我没有意识到内置的计算方法。是的,Damien,线性插值是我们迄今为止提出的唯一方法,但它都感觉有点手工。M值是一个校准距离,但它并不总是与线路长度保持一致,因为它基于历史数据,用作定位物体的参考,但并不总是在地理上准确。我加了一句我以前应该说的话。我们目前通过PostGis中的ST_LocateAlong实现这一目标。