尝试编写vbscript函数以将DMS中的坐标转换为十进制格式。
38°37'16.662"N, 109°36'5.01"W
应转换为38.621295,-109.601391666667
我的功能如下,我得到正确的数字,但我无法弄清楚如何确定是否在lng之前放置负号。
latLngDmsToDecimal(38, 37, 16.662) = 38.621295
latLngDmsToDecimal(109, 36, 5.01) = 109.601391666667
注意第二个结果没有否定符号。
Function latLngDmsToDecimal(byVal d, byVal m, byVal s)
d = cDbl(d)
m = cDbl(m)
s = cDbl(s)
If d < 0 Then
latLngDmsToDecimal = -(s / 3600) - (m / 60) + d
Else
latLngDmsToDecimal = (s / 3600) + (m / 60) + d
End If
End Function
答案 0 :(得分:1)
你需要解析方向。 W和S应为负数。这应该传递给你的函数,解析器应该反转度数部分
所以第二个应该读
latLngDmsToDecimal(109,36,5.01,W)= -109.601391666667
或者
latLngDmsToDecimal(-109,36,5.01)= -109.601391666667