Python 将小数加到经度值上
Python adding decimals to longitude values
我有数千个 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
这也适用于纬度值
我有数千个 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
这也适用于纬度值