将地理/几何转换为度/分/秒 - 相同的计算?

Posted

技术标签:

【中文标题】将地理/几何转换为度/分/秒 - 相同的计算?【英文标题】:Convert Geography /Geometry to deg/min/sec - same calculation? 【发布时间】:2015-02-04 09:27:06 【问题描述】:

我看到了这个相关的问题:How to convert Geometry type column to degree Minutes Second in SQL Server 2008 R2

但我在追求别的东西:

如何将Geography类型的列转换为度分秒?

几何的建议解决方案是:

DECLARE @geom geometry;

SET @geom = geometry::STGeomFromText('POINT(-83.255 32.567477)', 4326);


SELECT CASE WHEN @geom.STX < 0 then '-' ELSE '' END +
    CAST(FLOOR(ABS(@geom.STX)) as varchar) + ' ' +
    CAST(CAST(FLOOR(ABS(@geom.STX) * 60) AS INT) % 60 as varchar) + ''' ' +
    CAST(CAST(FLOOR(ABS(@geom.STX) * 3600) AS INT) % 60 AS VARCHAR) + '"',
  CASE WHEN @geom.STY < 0 then '-' ELSE '' END +
    CAST(FLOOR(ABS(@geom.STY)) as varchar) + ' ' +
    CAST(CAST(FLOOR(ABS(@geom.STY) * 60) AS INT) % 60 as varchar) + ''' ' +
    CAST(CAST(FLOOR(ABS(@geom.STY) * 3600) AS INT) % 60 AS VARCHAR) + '"'

NB 我问它是因为我知道几何学更多 forgiving 比地理

问题

如何将 geography 转换为 deg/min/sec ? ,

与 Geometry 一样,将小数更改为 => deg/min/sec 是否有效? (会是一样的计算吗?)

【问题讨论】:

你有没有想过看看SqlGeometrySqlGeography 的属性。嗯,好吧,是的,正如错误所说,地理类型没有STX/STY。但它确实有LatLong... @Damien_The_Unbeliever 我已经知道了。将地理的度/分钟/秒更改为十进制是否与几何相同? (几何比地理更宽容......所以我害怕丢失数据) 如果你说“几何更宽容”,我不知道你的意思是什么意思 - 你有一些关于这个话题的文章/帖子吗? - 由于您的问题的主要焦点似乎是“地理缺少STX 属性,我该怎么办?”我想我会通过简单的搜索向您指明您应该能够找到有关该问题的文档。 @Damien_The_Unbeliever i.imgur.com/DMI2x5b.png ,来自 here... 所以我问 - 即使我将 STX 更改为 LAT/LON :“更改 deg/min/sec 是否有效地理的十进制与几何的方式相同“? 我一直在努力弄清楚如何应对。您似乎对基于其他人在另一个答案中的模糊断言的某些事情有一些强烈的看法,而这反过来又很少能证明一个应该被认为更“宽容”的实际原因。这两种类型有不同的用途应该不足为奇——如果它们的行为相同,我们就不会有两种类型。您是否真正了解问题中包含的代码,并理解为什么它实际上不太适合几何而不是地理? 【参考方案1】:

简短的回答:是的。两者只是同一事物的不同表示。一个以十进制表示尾数,另一个以六十进制表示。

【讨论】:

以上是关于将地理/几何转换为度/分/秒 - 相同的计算?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 将十进制度转换为度,分和秒序数

Orchid Tracking 软件 - 如何将十进制值转换为 GPS 度/分/秒

如何将GPS数据转换为度分秒

将 SQL 地理转换为 SQL 几何或以其他方式提高查找速度

excel将小数格式转化为分秒毫秒格式

js将秒转换为 分:秒 函数