У меня есть SQL-запрос, в котором я объявляю две переменные Geography, а затем пытаюсь найти центральную точку многоугольников после присвоения этим переменным значений.
Это мой код:
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?