Microsoft.SqlServer.Types.SqlGeography.ToString有意想不到的行为。
看看我的单元测试:
latitude = 40.584474F;
longitude = -111.633491F;
var location = SqlGeography.Point( latitude, longitude, 4326 );
var point = location.ToString();此时,变量点的值为:点(-111.63349151611328 40.58447265625)。
正如你所看到的,纬度和经度已经从常模中移开了。
这是今天下载的nuget软件包。(v11.0.2)
Clarification:对象值是正确的,但是ToString()正在生成一种不适合SQLServer本身的格式,尽管在我看来这是一个特定于SQLServer的类。
更新2:这不是重复,因为它与类似标题的问题不同,因为这是关于(Microsoft.SqlServer.Types.SqlGeography.ToString),类的.NET,而不是Server本身。
发布于 2015-08-21 14:30:00
Server 12将接受:地理::Point(47.65100,-122.3490,4326)。若要生成Server可以接受的字符串,请执行以下操作:
var point = ColValue as SqlGeography;
if (point != null)
return "geography::Point(" + point.Lat + ", " + point.Long + ", 4326)";发布于 2015-08-21 04:31:37
经纬度还没有被交换。只是Point()构造函数在纬度之后接受经度,但在ToString()中,经度是在纬度之前打印的。
打印值location.Lat和location.Long以确定所知。
https://stackoverflow.com/questions/32132323
复制相似问题