0

我正在尝试将点和多边形从特定于国家/地区的坐标系转换为经纬度系统 (GPS)。

虽然我有(相当复杂的)公式来计算给定一组特定坐标的平移,但我仍然坚持使用 SQL Server 几何列,它不仅包含点,还包含多边形和线。

我试图解决这个问题的方式:

  • 在表格的几何列中找到最大点数(使用STNumPoints())
  • 使用while-loop 和 iterator@i遍历所有几何点(直到之前找到的最大值)
  • 更新所有具有 <=@i点的几何实例,将@i第 th 点平移到 GPS 坐标系

这只有一个问题:SQL Server 似乎不允许我更新 Geometry 实例中的单个点。

我试图在网上查找有关更新 Geometry 实例的信息,但找不到任何信息。

是否可以更新几何实例的部分内容?如果是,这样做的限制/先决条件是什么?

4

2 回答 2

0

看看几何方法,我不这么认为。另一种方法是将它们分解存储(即,将多边形存储为它们的组成点),然后在准备好将它们视为多边形时聚合它们。

另一个注意事项:如果此信息确实代表地球上的点,请考虑改用 geography 数据类型。它考虑了地球的曲率,因此距离和面积等内容将更加准确。

于 2013-08-21T10:45:00.583 回答
0

你可以这样更新:

SET @sqlCommand = 'USE [' + @databaseName + '];' +
              ' UPDATE [dbo].[' + @tableName + ']' +
              ' SET [GEOSTART] = geometry::STGeomFromText(''POINT ('' + [X1] + '' '' + [Y1] + '')'', 4326) WHERE X1<>'''' and Y1<>'''' '; 
EXEC (@sqlCommand)
于 2014-06-27T13:57:09.967 回答