4
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() 有什么区别?

谢谢。

4

2 回答 2

5

STAsText(地理数据类型)这将返回文本将包含实例携带的任何 Z(海拔)或 M(测量)值

ToString(地理数据类型)这将返回文本将包含实例携带的任何 Z(海拔)或 M(测量)值

例子:

声明@g 几何;
SET @g = geometry::STGeomFromText('POINT(1 2 3 4)', 0);

选择@g.ToString(); -- 结果 点 (1 2 3 4)

SELECT @g.STAsText() -- 结果 点 (1 2)

于 2019-02-26T09:18:37.133 回答
1

根据文档,ToString()返回地理实例的值表示,该实例使用实例携带的任何 Z(海拔)和 M(测量)值进行扩充。

但是,STAsTEXT()函数文本将不包含实例携带的任何 Z(高程)或 M(测量)值。

这些 SQL 地理函数似乎确实存在一些重叠。

于 2018-05-02T14:03:56.267 回答