【问题标题】:convert latitude and longitude values from dms to dd in sql server在sql server中将纬度和经度值从dms转换为dd
【发布时间】:2014-08-11 21:13:35
【问题描述】:

我在DegreesMinutesSeconds(DMS) 中有latitudelongitude 值 喜欢17264496N,78223862E

我需要转换为DecimalDegrees(DD),例如17.8688,078.12547

有没有办法从dms转换为dd。

在 Google 搜索中,我发现只有 degreesMinutesSeconds(例如 17 度、26 分钟)具有单独列的值的 dms 转换, 44 秒。

【问题讨论】:

标签: sql-server sql-server-2008 type-conversion


【解决方案1】:

我得到了答案,我们必须先将 dms 值按以下方式拆分为度、分和秒。 你所要做的就是 Step1:创建以dms纬度值为参数的函数。 Step2:现在函数返回十进制度值

     ALTER FUNCTION [dbo].[GetLatitudeConversionFromDMSToDD] 

  (
@LatitudeInDMS NVARCHAR(100)
  )
 Returns FLOAT
 As

Begin
            Declare @FirstTwoCharForStartLat nvarchar(100),@CharElimForStartLat          
             nvarchar(100), @RemCharForStartLat nvarchar(100),
            @CharElimcountForStartLat float, @DegreetodecimalcalcForStartLat float

            select @FirstTwoCharForStartLat= LEFT(@LatitudeInDMS,2)
            select @CharElimForStartLat=LEFT(@LatitudeInDMS,LEN(@LatitudeInDMS)-1)
            select @RemCharForStartLat=RIGHT(@CharElimForStartLat,6)
            select @CharElimcountForStartLat=((CAST(@RemCharForStartLat as    
            float))/600000) 
            select @DegreetodecimalcalcForStartLat=(cast(@FirstTwoCharForStartLat as
            float))+@CharElimcountForStartLat 


   Return @DegreetodecimalcalcForStartLat

 END

      --select dbo.GetLatitudeConversionFromDMSToDD('17264496N')
      --The output is:17.4408266666667

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2010-11-11
    相关资源
    最近更新 更多