arcmap十进制度和度分秒相互转换

0
分享 2020-09-04

十进制度转度分秒

新建文本型字段,使用字段计算器构建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

0 个评论

要回复文章请先登录注册