问题描述
我有一个表格,其中包含一系列我感兴趣的地球表面矩形区域的记录。
我将这些存储在这样的表中
CREATE TABLE [dbo].[Areas]
(
[AreaID] [int] NOT NULL,[north] [decimal](8,6) NULL,[south] [decimal](8,[east] [decimal](9,[west] [decimal](9,6) NULL
)
我想开始做一些空间查询,所以我需要将那些限制纬度和经度转换为地理字段,并且正在考虑以下内容
[PointGeo] [geography] NULL,[LineGeo] [geography] NULL,[polyGeo] [geography] NULL
使用 PointGeo,我需要为每个框的角创建一个纬度/经度。 使用 LineGeo,我可能需要按顺序将点连接在一起,添加第一个点的副本以关闭框。线条将主要用于显示目的。
使用 polyGeo 我需要使用相同的 LineGeo 节点来创建多边形
我可以使用类似的东西从纬度/经度值创建一个简单的点几何体
UPDATE dbo.<table>
SET PointGeo = geography::Point(Latitude,Longitude,4326)
除了使用 ...fromWKT... 函数之外,我看不出如何添加多个点或线/多边形,这些函数看起来像大量的文本操作,例如4 个边界点需要类似
UPDATE dbo.<table>
SET PointGeo = geography::STGeomFromText('MULTIPOINT((' + CAST(lat1 AS varchar(8)) + ' ' + CAST(long1 AS varchar(9)) + ' ),(' + CAST(lat2 AS varchar(8)) + ' ' + CAST(long2 AS varchar(9)) + ' ))',4326)
添加的节点越多,情况就变得越复杂,计算引号和括号以确保它们都以正确的顺序出现。
我是否缺少一些从纬度/经度坐标创建多点地理的简单函数?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)