我有一个 SQL 查询,我在其中声明了两个地理变量,然后在将值分配给这些变量后,我试图找到多边形的中心点。
这是我的代码:
DECLARE @g1 GEOGRAPHY;
DECLARE @g2 GEOGRAPHY;
SET @g1 = geography::STGeomFromText('POLYGON((-90.06875038146973 35.512324341620996,-90.06767749786377 35.51504904492378,-90.06407260894775 35.51499664765537,-90.06381511688232 35.512219543493465,-90.06875038146973 35.512324341620996))',4326);
SET @g2 = geography::STGeomFromText('POLYGON ((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))',4326);
SELECT @g1 AS 'G1' ,
@g2 AS 'G2';
SELECT 'G1' AS 'Polygon' ,
@g1.EnvelopeCenter().Lat AS 'Lat' ,
@g1.EnvelopeCenter().Long AS 'Long'
UNION ALL
SELECT 'G2' AS 'Polygon' ,
@g2.EnvelopeCenter().Lat AS 'Lat' ,
@g2.EnvelopeCenter().Long AS 'Long'
现在,对于第二个多边形,它将中心纬度/经度值正确返回为 47.6545001086162、-122.352999904254。但是对于第一个,它返回值 90, 0。
为什么我没有得到第一个多边形的正确中心点?如果由于某种原因不可能通过这种方式,有没有其他方法可以找到给定 WKT 字符串的中心点?