网上好多经纬度转换的方法,可是遇到特殊的数字总是缺失一点精度,让人头疼,下面的方法修正了经纬度精度问题;如果还有其他数字缺失的欢迎来一起研究;
formatDu() {
var mFen = 0
if (this.sValue != null && this.sValue != '') {
mFen = Number(this.sValue / 60)
}
var fDu = 0
if (this.mValue != null && this.mValue != '') {
fDu = (Number(this.mValue) + mFen) / 60
} else {
fDu = mFen
}
var lDu = 0
if (this.dValue != null && this.dValue != '') {
lDu = (Number(this.dValue) + fDu).toFixed(7)
} else {
lDu = fDu.toFixed(7)
}
return lDu
},
formatDFM(value) {
if (value != null && value != '' && value != 0) {
value = Math.abs(value)
this.dValue = Math.floor(value)
this.mValue = Math.floor((value - this.dValue) * 60)
this.sValue = parseFloat(((value - this.dValue) * 3600 - this.mValue * 60).toFixed(3))
if (this.sValue === 60) {
this.sValue = 0
this.mValue += 1
}
if (this.mValue === 60) {
this.mValue = 0
this.dValue += 1
}
if (this.dValue >= this.max) {
this.dValue = this.max
this.mValue = 0
this.sValue = 0
}
} else {
this.dValue = 0
this.mValue = 0
this.sValue = 0
}
},