我有数千个NAD83纬度经度值,其中经度值以-747559718这样的负数开头
为了在我使用的映射应用程序中正确使用,小数点必须在4之后。应该是-74.7559718
有时经度值是-123092886,小数点应该在3之后。应该是-123.092886
我正在通过JSON文件读取这些坐标,因为某些原因,它们没有小数。我正在寻找一个纯python的解决方案,在正确的位置插入小数点。
这些数字有9到10位
我知道我可以做一些事情,比如当我把经度值放在一个变量中
s = longitude
s[:3] + '.' + s[3:]
最佳答案
我已经解决了我的问题:我所有的长条坐标都在同时代的美国,我知道,作为一个地理空间分析员,NAD83投影中的任何经度值都在同时代的美国,并且以1位开始,它在第3位之后会有一个小数位。在美国,其余的经度值要么从7,8或9开始,这些值总是在第二个数字后面有一个十进制数。我不确定这个解决方案是否适用于世界其他地区,但它能在这里实现
下面是我的解决方案,其中z是包含经度值的变量:
if str(z)[1:2] == '1':
longitude = str(z)[0:4]+'.'+str(z)[4::]
else:
longitude = str(z)[0:3]+'.'+str(z)[3::]
更新
更好的答案:
longitude = z * 0.0000001
这也适用于纬度值
关于python - Python将小数添加到经度值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40664010/