十进制度转度分秒
新建
文本型字段,使用字段计算器构建python表达式将十进制度转换成度分秒,代码如下:
def dd2dms(dd):
degree=(int)(float(dd))
minute=(int)((float(dd)-degree)*60)
second=(float(dd)-degree-float(minute)/60)*3600
dms=str(degree)+' '+str(minute)+ ' '+str(second)
return dms
代码首行中的dd为存储十进制经纬度字段名称,工具运行之前需要将调用函数中的EXT_MIN_X替换为存储十进制度经纬度字段名称
度分秒转十进制度
新建
双精度类型字段,使用字段计算器构建VB脚本将十进制度转换成度分秒,代码如下:
Dim Degrees
Dim Minutes
Dim Seconds
Dim DMS
Dim DD
DMS = Split([Latitude])
Degrees = CDbl(DMS(0))
Minutes = CDbl(DMS(1))
Seconds = CDbl(DMS(2))
If Degrees < 0 Then
DD = -(Seconds/3600) - (Minutes/60) + Degrees
Else
DD = (Seconds/3600) + (Minutes/60) + Degrees
End If
在代码的第六行中,DMS = Split([Latitude])括号 [ ] 中的文字指的是保存度分秒经纬度值字段的名称。所以在运行前需要将代码中的 Latitude 替换表中存储 DMS 经纬度值字段的名称
文章来源:https://blog.csdn.net/qq_41574870/article/details/108272873