首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# SqlGeography纬度与经度意外行为

c# SqlGeography纬度与经度意外行为
EN

Stack Overflow用户
提问于 2015-08-21 04:22:28
回答 2查看 1.5K关注 0票数 1

Microsoft.SqlServer.Types.SqlGeography.ToString有意想不到的行为。

看看我的单元测试:

代码语言:javascript
复制
 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本身。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-21 14:30:00

Server 12将接受:地理::Point(47.65100,-122.3490,4326)。若要生成Server可以接受的字符串,请执行以下操作:

代码语言:javascript
复制
var point = ColValue as SqlGeography;
if (point != null)
return "geography::Point(" + point.Lat + ", " + point.Long + ", 4326)";
票数 0
EN

Stack Overflow用户

发布于 2015-08-21 04:31:37

经纬度还没有被交换。只是Point()构造函数在纬度之后接受经度,但在ToString()中,经度是在纬度之前打印的。

打印值location.Latlocation.Long以确定所知。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32132323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档