Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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 Server地理位置多点插入_Sql Server_Spatial_Geography - Fatal编程技术网

Sql server SQL Server地理位置多点插入

Sql server SQL Server地理位置多点插入,sql-server,spatial,geography,Sql Server,Spatial,Geography,我正在使用SQL Server 2012。我在一个表中跟踪地理列中的单点实例。将它们存储为一个单点很好,但我正在尝试将它们中的一些组合到一个新表中,它们将是一个多点。我可以通过将lat和long插入如下多点列来实现: DECLARE @g geography; SET @g = geography::STMPointFromText('MULTIPOINT(-104.952784 39.524092, -104.935269 39.542652)', 4326); INSERT INTO te

我正在使用SQL Server 2012。我在一个表中跟踪地理列中的单点实例。将它们存储为一个单点很好,但我正在尝试将它们中的一些组合到一个新表中,它们将是一个多点。我可以通过将lat和long插入如下多点列来实现:

DECLARE @g geography; 
SET @g = geography::STMPointFromText('MULTIPOINT(-104.952784 39.524092, -104.935269 39.542652)', 4326);
INSERT INTO test(loc) values(@g)
我要做的是从已经是地理数据类型的表中选择值。我不确定我是否可以用一个基本的查询或者是否必须用一个循环来构建它?我似乎无法让它以任何方式工作

还有,在我得到它之后,有没有一个方法可以返回多点列的中心点?我一直在玩一些方法,比如
STStartPoint
STEndpoint
,但我似乎找不到一个返回中心点的方法

如果您能在这些问题上提供帮助,我们将不胜感激


谢谢

如果我正确理解了你的第一个问题,你有两点,分别存储为地理实例。如果是这种情况,您可以使用Stuion方法将它们组合到一个地理多点实例中。

您正在寻找的是STCentroid()方法,但不幸的是,它不适用于多点对象。几年前,我提出了一个连接问题,微软以“无法修复”为由关闭了该问题,但欢迎您投票支持:


同时,您必须手动求和,然后分别对X和Y坐标值求平均值,以获得多点的平均“中心”。

对于中心,您想要与两者等距的点吗?回到这里。这就是我要找的。我想我现在得手工做了。谢谢你的帮助