如何从地理位置获得一个点的索引?

时间:2011-06-21 02:00:03

标签: sql-server sql-server-2008 sql-server-2008-r2 spatial geography


如何获得LineString中的点的索引?
我正在使用SQL Server 2008 R2。

我确实有一个地理类型,其中保存了一个LineString 我现在想要在此 LineString 上获得两点索引。所以我知道哪个首先出现 这有点可能吗?
因为现在我正在为我自己做一个while循环...但是当我在我的数据库中有更多数据时它真的很慢:/

编辑:好的,现在我正在尝试按照SQL的解决方案使用CHARINDEX。
更多背景信息:
我确实有一个地理位置,我有一个线串。我确实从线串得到了我的点周围半径的交叉点。好的,现在我想尝试从 LineString 上的第一个交叉点索引

问题是, STIntersection 给了我一些不同的数字返回变量小数位数。我想过一些字符串格式,但我不知道我应该如何解决这个问题。如果有一些很好的正则表达式功能,我认为它会让我的生活更轻松:) 我查看了所有这些functions但找不到任何符合我需求的内容。

也许一些经验丰富的人可以帮助我。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果数据类型是varchar使用。请参阅下文。

您可以使用CharIndex

DECLARE @document varchar(64)

SELECT @document = 'abcdef12345wuerzelchen'
SELECT CHARINDEX('abc', @document)

获得第一个出现点后,现在可以检查另一个出现点。

Declare @position int
Set @position = CHARINDEX('abc', @document)    
SELECT CHARINDEX('wuerzelchen', @document, @position)

有关详细信息,请查看here