SQL Server中地理多边形区域的中心纬度和经度

Ada*_*dam 3 sql sql-server geospatial

我有一个如下创建的地理多边形

DECLARE @polyString as varchar(max);
SET @polyString = 'POLYGON((' + @eastAsString + ' ' + @northAsString +',' + @westAsString + ' ' + @northAsString + ',' + @westAsString + ' '+@southAsString +','+ @eastAsString + ' ' + @southAsString +',' +@eastAsString +' ' +@northAsString +'))';

DECLARE @g geography;
SET @g = geography::STPolyFromText(@polyString, 4326)
Run Code Online (Sandbox Code Playgroud)

我想找到多边形的中心纬度/经度吗?在SQL Server内部可能吗?

thy*_*yme 5

您可以使用EnvelopeCenter()geography类型的方法。

DECLARE @polyString as varchar(max);
SET @polyString = 'POLYGON((' + @eastAsString + ' ' + @northAsString +',' + @westAsString + ' ' + @northAsString + ',' + @westAsString + ' '+@southAsString +','+ @eastAsString + ' ' + @southAsString +',' +@eastAsString +' ' +@northAsString +'))';

DECLARE @g geography;
SET @g = geography::STPolyFromText(@polyString, 4326)
SELECT @g.EnvelopeCenter().ToString()
Run Code Online (Sandbox Code Playgroud)

定义多边形的中心到底意味着什么,将很有帮助,因为定义多边形的方式不同。