Install: google_takeout_parser
Run: google_takeout_parser parse -f Location Takeout
Type this to create a CSV file:
def write_to_csv(file_path, data_instances):
import csv
with open(file_path, mode='w', newline='') as file:
writer = csv.writer(file)
# Write header
writer.writerow(data_instances[0].__annotations__.keys())
# Write data
for instance in data_instances:
writer.writerow(instance.__dict__.values())
write_to_csv('location_history.csv', res)
Finally load that data in with any JS SDK, like Esri's ArcGIS Maps SDK for JavaScript:
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<title>
Load location history data
</title>
<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
<link
rel="stylesheet"
href="https://js.arcgis.com/4.27/esri/themes/light/main.css"
/>
<script src="https://js.arcgis.com/4.27/"></script>
<script>
require([
"esri/Map",
"esri/layers/CSVLayer",
"esri/views/SceneView"
], (Map, CSVLayer, SceneView) => {
const csvLayer = new CSVLayer({
url: url
});
const map = new Map({
basemap: "satellite",
ground: "world-elevation"
});
map.add(csvLayer);
const view = new SceneView({
container: "viewDiv",
map: map
});
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>
Count records using jq:
jq '.locations | map(select ( .timestamp | contains("2024-02")) ) | length' Records.json
As a reference, Counting records (my location) using DuckDB:
