В чем разница между 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 частично совпадают.