this post was submitted on 25 Jun 2023
6 points (87.5% liked)

Selfhosted

40184 readers
829 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

Hello, I'm looking for a good tool to selfhost some kind of location history similar to Google's one. To have some data I can test the tools with, I merged every of my bicylce and hiking tours to one GPX file containing 7000km worth of travel. Then I tried this tool, but it really lags with so much data and every move and every zoom takes some seconds to load. Next I tried the "Phonetrack" app on my nextcloud instance, but this as well lags and I have to activate every track manually and they are color coded. I really like the connection between the phonetrack app on my Android and the nextcloud app, but I am afraid that I'll eventually run into the same performance problem when I gathered enough data. I've seen that theres OwnTracks, but it seems you have to set up your own server and I don't want to pay extra next to my nextcloud subscription. Do you know of any kind of location history tool I can use that can handle big amounts of data?

EDIT: I now found a solution I'm very happy with: I still use the Phonetrack app with my Nextcloud and komoot to track my biking/hiking tours. I found a python program that downloads all my komoot tours (https://github.com/ThePBone/KomootGPX) in a folder on my Linux Desktop. I also mounted my nextcloud to my Linux filesystem, so I'd have access to the Phonetrack exports. I wrote a Java program that takes all the gpx files and converts them to a JSON file similar to the original Google Location History JSon file. That all happens automatically once in a week with an anacronjob. Finally I use this tool (https://github.com/theopolisme/location-history-visualizer) to visualize all the data. I've not run into performance issues with this unlike with the other apps I tried. I plan to change this program so I don't have to got through the steps with selecting the file, etc. but this is my current implementation that I'm very happy with. Just leave me a message if you need my Java file to achieve the same :)

you are viewing a single comment's thread
view the rest of the comments
[–] Rogue1633@discuss.tchncs.de 2 points 1 year ago (4 children)

I agree, the first two problems are rather easy to solve with phonetrack or any other of the tracking apps like µlogger, Owntracks, Traccar, etc. and nextcloud or the backend you provided. What is the reason that the simple heatmap is not ideal? Does it also lag or are you looking for filters functionality, etc.? The data pre processing must be challenging cause thats the part really seperating the self hosted solutions to Google's one. If one could pre process the data on a nextcloud server and could render it on a map without significant lags, that would be really cool. Maybe I'll try to work on that in the future when I got more advanced in programming.

[–] palitu@lemmy.perthchat.org 1 points 1 year ago (3 children)

Yeah, i think my data set is around 14mb when i load it all (and it loads all points to the browser). that is a bit of a loading lag, but once loaded it is ok.

The other issues is when you zoom out, you cannot pan around. you have to do clever scrolling (zoom) in and out to get to where you want.

I think it should be reasonabley easy to do the server side updates, but i cannot javscript front end to save my life!

[–] palitu@lemmy.perthchat.org 2 points 1 year ago (2 children)

here is a JS one i tried to build

[–] Rogue1633@discuss.tchncs.de 1 points 1 year ago (1 children)

That looks nice. If you want to share it, I'd totally try it out!

[–] palitu@lemmy.perthchat.org 1 points 1 year ago

it is just a server-less javascript implementation (ie, a single html file, plus pre-packaged data).

Ultimately, it used leaflet.js and each square is a square-icon with different opacity. but i think you will find that heatmap plugin to leaflet will provide better performance with less complexity.

Still, i can upload it if you want.