使用 SQL 2008 空间函数,如何构造表示两个(或多个)POINT 实例之间的线的 LINESTRING?
定义几个点如下:
declare @p1 geography, @p2 geography
set @p1 = 'POINT(1 2)'
set @p2 = 'POINT(6 8)'
现在我想获得这两点之间的最短线。 我可以使用什么函数来获取这条线? (即,它应该输出 LINESTRING(1 2, 6 8) 或 LINESTRING(6 8, 1 2))
我知道我可以通过将点格式化为 WKT,进行一些字符串操作,然后将其解析回来来做到这一点,但这似乎很荒谬。 当然有某种方法可以直接从一系列点构造线串吗?
(对于“几何”类型,我可以使用 @p2.STUnion(@p1).STConvexHull(),但没有适用于地理类型的 STConvexHull()。)
Define a couple of points as follows:
declare @p1 geography, @p2 geography
set @p1 = 'POINT(1 2)'
set @p2 = 'POINT(6 8)'
Now I'd like to obtain the shortest line between these two points. What function can I use to get this line? (i.e., it should output a LINESTRING(1 2, 6 8) or LINESTRING(6 8, 1 2))
I know I could do this by formatting the points as WKT, doing a bit of string manipulation, and then parsing it back, but that seems ridiculous. Surely there's some way to construct a linestring directly from a series of points?
(With "geometry" types, I can use @p2.STUnion(@p1).STConvexHull(), but there's no STConvexHull() for a geography type.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 T-SQL 中有两种方法可以实现:
There are two ways to do it in T-SQL: