如何将Google History JSON的经纬度整数转换为谷歌地图可识别格式?
嘿,这个问题我太熟悉了!Google Location History导出的坐标用E7格式存储其实是个很常见的小细节,转成谷歌地图能用的格式超简单,还能帮你验证脚本的正确性。
转换E7坐标到谷歌地图可用格式的方法
核心转换逻辑
Google把真实经纬度乘以10^7(也就是10000000)后取整,得到latitudeE7和longitudeE7字段。所以转换公式就是:
- 真实纬度 =
latitudeE7/ 10000000 - 真实经度 =
longitudeE7/ 10000000
比如你给的示例数据:
{ "latitudeE7" : 511052047, "longitudeE7" : 207459413 }
转换后就是:51.1052047, 20.7459413,这个字符串可以直接复制到谷歌地图网页端的搜索框,回车就能定位到对应位置。
脚本里的实现(常见语言示例)
如果你要在遍历脚本里直接生成可复制的坐标,这里给两个常用语言的代码片段:
JavaScript
// 假设你的JSON数据已经解析到data变量中 data.locations.forEach(location => { // 计算真实经纬度 const latitude = location.latitudeE7 / 10000000; const longitude = location.longitudeE7 / 10000000; // 拼接成谷歌地图支持的格式 const mapCoords = `${latitude}, ${longitude}`; // 可以打印到控制台,或者输出到文件 console.log(mapCoords); });
Python
import json # 读取导出的JSON文件 with open('YourLocationHistory.json', 'r', encoding='utf-8') as f: location_data = json.load(f) # 遍历所有位置 for loc in location_data['locations']: lat = loc['latitudeE7'] / 10**7 lng = loc['longitudeE7'] / 10**7 # 生成可复制的坐标字符串(保留7位小数和原数据精度一致) map_ready = f"{lat:.7f}, {lng:.7f}" print(map_ready)
验证脚本定位正确性的方法
- 手动抽样验证:从脚本输出的坐标里挑几个你记得的位置(比如家、公司、常去的餐厅),复制到谷歌地图搜索框,看是否定位到正确地点。
- 时间点对照:选一个有明确记忆的时间点(比如某次旅行的景点),找到对应时间的坐标,验证是否匹配实际位置。
- 格式校验:确保转换后的坐标是十进制数+逗号分隔的格式(比如
39.9042, 116.4074),谷歌地图对这种格式的支持最稳定。
内容的提问来源于stack exchange,提问作者jcubic
相关产品推荐
相关产品推荐

