Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Google location timeline data is now device local - know issue with device export to JSON #13

Open
hossain-khan opened this issue Aug 29, 2024 · 3 comments

Comments

@hossain-khan
Copy link
Contributor

Due to recent changes, location data is now moved to device.

User can enable cloud sync for the location data, but at the moment sync is full backup and they are encrypted.

Export from device does not seem to follow the Google Take out format either.

I have posted about these issues at https://support.google.com/maps/thread/293710908/export-device-local-location-timeline-data-fails?hl=en


No action is required, this is just FYI post. Issue can be closed.

@ve3
Copy link

ve3 commented Sep 16, 2024

Since Google move timeline data to device and export now has new JSON structure. But there is no document/reference about this anywhere.

@hossain-khan
Copy link
Contributor Author

It seems like they have fixed the issue. Now the timeline data can be exported from the device.

Here is JSON structure of the export.

{
    "semanticSegments": [
        {
            "startTime": "YYYY-MM-DDTHH:MM:SS.000-04:00",
            "endTime": "YYYY-MM-DDTHH:MM:SS.000-04:00",
            "timelinePath": []
        }
    ],
    "rawSignals": [
        {
            "activityRecord": {}
        },
        {
            "position": {}
        },
        {
            "wifiScan": {}
        }
    ],
    "userLocationProfile": {
        "frequentPlaces": [
            {
                "placeId": "abcdefghi",
                "placeLocation": "123.123°, -456.456°",
                "label": "HOME"
            }
        ]
    }
}

@ve3
Copy link

ve3 commented Sep 26, 2024

Structure of semanticSegments property (without rawSignals and more that is already posted by @hossain-khan :

{
    "semanticSegments": [
        {
            "startTime": "DB value (string)",
            "endTime": "DB value (string)",
            "startTimeTimezoneUtcOffsetMinutes": "DB value (integer)",
            "endTimeTimezoneUtcOffsetMinutes": "DB value (integer)",

            "timelinePath": [
                {
                    "point": "DB value (string).",
                    "time": "DB value (string)."
                }
            ],

            "activity": {
                "distanceMeters": "DB value (double).",
                "probability": "DB value (double).",
                "start": {
                     "latLng": "DB value (string)."
                },
                "end": {
                    "latLng": "DB value (string)."
                },
                "topCandidate": {
                    "type": "DB value (string)."
                },
                "topCandidate": {
                    "probability": "DB value (double)."
                },
                "parking": {
                    "location": {
                        "latLng": "DB value (string)."
                    },
                    "startTime": "DB value (string)."
                }
            },

            "visit": {
                "hierarchyLevel": "DB value (integer).",
                "probability": "DB value (double).",
                "isTimelessVisit": "DB value (boolean).",
                "topCandidate": {
                    "placeId": "DB value (string)."
                },
                "topCandidate": {
                    "semanticType": "DB value (string)."
                },
                "topCandidate": {
                    "probability": "DB value (double)."
                },
                "topCandidate": {
                    "placeLocation": {
                        "latLng": "DB value (string)."
                    }
                }
            },

            "timelineMemory": {
                "trip": {
                    "distanceFromOriginKms": "DB value (integer)."
                },
                "destinations": [
                    {
                        "identifier": {
                            "placeId": "DB value (string)."
                        }
                    }
                ]
            }
        }
    ]
}

I've created mini PHP web app for view these timeline data ( https://github.com/Rundiz/personal-maps-timeline ), I hope you like it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants