В чем разница между STAsText() и ToString() в SQL при преобразовании географии в WKT

DECLARE @geographyData geography; 
//Convert wkt to geography 

SET @geographyData = geography::Parse('LINESTRING(-132.360 50.657, -120.340 47.659)');


//Convert back to wkt from geography

(1) @geographyData.ToString();

(2) @geographyData.STAsText();

(1) и (2) дают мне тот же результат, что и LINESTRING (-132,36 50,657, -120,340 47,659). В чем разница между ToString() и STAsText()?

Благодарю.

1 ответ

STAsText (тип данных geography), этот текст будет возвращен, не будет содержать значений Z (высота) или M (мера), переносимых экземпляром

но

ToString (тип данных geography), этот текст будет возвращать любые значения Z (высота) или M (мера), переносимые экземпляром

Пример:

ОБЪЯВИТЬ @g геометрию;
SET @g = geometry:: STGeomFromText ('POINT (1 2 3 4)', 0);

SELECT @ g.ToString (); - ТОЧКА РЕЗУЛЬТАТА (1 2 3 4)

SELECT @ g.STAsText () - ТОЧКА РЕЗУЛЬТАТА (1 2)

Согласно документам, ToString() возвращает представление значения экземпляра географии, дополненного любыми значениями Z (высота) и M (мера), переносимыми экземпляром.

Тем не менее STAsTEXT() Функциональный текст не будет содержать значений Z (высота) или M (мера), переносимых экземпляром.

Кажется, что некоторые функции географии SQL частично совпадают.

Другие вопросы по тегам