Проект: Dawarich — селфхостед замена Google Location History  Публичный пост
20 мая 2024  3246
Как же я ору ОХУЕННО ⨯3
Dawarich — селфхостед замена Google Location History
https://github.com/Freika/dawarich

Для начала, картинки для привлечения внимания.

Главная, она же карта
Главная, она же карта

Главная страничка статов
Главная страничка статов

Страничка со статами конкретного года
Страничка со статами конкретного года

Страничка с импортами
Страничка с импортами

Расскажите о сути проекта?

Dawarich (читать как "даварихь") — self-hosted альтернатива Google Location History. На картах Гугл есть функция Timeline, которая, если у вас включено сохранение данных о ваших перемещениях, позволяет посмотреть на карте, где и когда вы побывали. Это выглядит примерно так:

Google Maps Timeline
Google Maps Timeline

Теперь вместо Гугла я трекаю и анализирую свои перемещения на свой сервер. Да, Гугл по-прежнему очень много чего обо мне знает, но по крайней мере галочку "Сохранять историю моих перемещений" в их интерфейсе я снял. Вы теперь тоже можете.

Как появилась идея? Что вдохновило?

С тех пор, как я проникся идеей селфхостинга (то есть, около года назад), у меня было желание как-то забрать свои геоданные у Гугла и хостить их у себя, чтобы визуализировать как мне нравится, анализировать как мне нравится, и вообще делать с ними всё, что заблагорассудится. Сполгода я пользовался OwnTracks, у которого есть и мобильное приложение для непосредственно сбора данных о перемещениях, и серверное приложение, которое хранит и позволяет просматривать данные. К сожалению, это очень простой комплект софта, и визуализация данных с сервера выглядит примерно вот так:

Интерфейс OwnTracks
Интерфейс OwnTracks

Визуализация есть, это хорошо. Никакой аналитики нет, это плохо. Однако, мобильное приложение OwnTracks позволяет отправлять данные на произвольно указанный адрес, и у них есть неплохая документация, позволяющая скрафтить эндпоинт, который будет спокойно принимать данные от их приложения. Так что в марте 2024 я взял свой давно приготовленный для таких случаев темплейт приложения на Rails, и для начала сделал как раз эндпоинт, чтобы просто принимать на него данные о геопозиции с моего телефона.

Что вошло в прототип и сколько времени на него было потрачено?

От базово юзабельной версии приложения, которую можно было бы считать MVP, мне требовалось три вещи:

  • Получение новых данных от мобильного OwnTracks
  • Импорт существующих исторических данных из Google Takeout и серверного OwnTracks
  • Визуализация точек на карте.

Где-то за месяц нерегулярных вечерних сессий я набросал всё, что мне было нужно и переехал с OwnTracks на Dawarich. Примерно с этого момента можно было заявлять о своей поделке миру, что я и сделал на Реддите, но об этом чуть ниже.

Что умеет проект?

Самые важные функции:

  • Приём в апи эндпоинт и отрисовка новых данных с мобильного приложения OwnTracks на карте
  • Импорт существующих данных из архива Google Takeout и экспорта серверного OwnTracks

Не обязательное, но очень мною любимое — статистика.

Dawarich умеет в (отключаемый) reverse-geocoding, а значит способен показать вам, в каких городах и странах вы побывали и когда вы там побывали. Может показать, сколько километров вы проделали за конкретный день, месяц и год, сколько вы проделали километров за весь период наблюдения.

Какой технологический стек вы использовали? Почему?

  • Ruby on Rails для бэкенда — потому что я работаю с ним много лет
  • TailwindCSS для фронтенда — потому что я не люблю фронтенд
  • LeafletJS для карт — потому что он, кажется, умеет всё, что мне нужно
  • Docker — потому что Portainer суть самый удобный способ вертеть приложения на своём сервере
  • Redis и PostgreSQL — потому что с ними я тоже работаю много лет

Как вы запускались и искали первых пользователей?

Так вот, про Реддит. Я достаточно давно подписан на r/selfhosted, так что логичным шагом было бы опубликовать свой проект именно в этом сабе. Что я и сделал с месяц назад: https://www.reddit.com/r/selfhosted/comments/1bvoe8a/dawarich_google_location_historygoogle_maps/. К моему приятному удивлению, он сразу собрал приличное количество апвотов и комментариев, в том числе с описанием багов, которые я достаточно оперативно починил.

Это позволило по-быстрому сгладить основные неровности и починить косяки, которые я просмотрел или не предусмотрел. Пользователей в формате селфхостед-приложения, разумеется, не получается, но зато можно порадоваться звёздочкам на гитхабе: на текущий момент их около 140. Первый пост принёс чуть больше сотни, но чуть больше недели назад Dawarich упомянули ещё в одном треде, что снова дало буст и увеличило визибилити моей поделки. В целом комментарии можно свести к чему-то вроде "наконец-то есть хоть какая-то альтернатива гугл таймлайну, я ждал такое джва года" :)

С какими самыми неожиданными трудностями пришлось столкнуться?

Ну, во-первых, я не фронтендер. Этот нюансик я принял в себе уже давным-давно, и стараюсь сгладить его доступными средствами. Такими, чтобы непосредственно во фронтенд погружаться приходилось ну прям по минимуму. Из-за этого я сколько-то времени пострадал при написании визуализации геоточек (а затем и линий между ними) на карте Leaflet, но в конечном итоге всё получилось.

Во-вторых, буквально вчера я вдруг понял один важный нюанс по поводу данных, которые можно получить, запросив архив с Google Takeout.

Long story short, когда пользователь запрашивает экспорт своих данных с Гугла, ему на почту приходит ссылка на один или несколько архивов с этими самыми данными. Нас интерсуют конкретно геоданные, так что после распаковки архива я с марта шёл по маршруту: папка Takeout -> История местоположений -> Semantic Location History, а внутри Semantic Location History уже лежит пачка папок именованных по годам, а в каждой из них в формате 2013_APRIL.json, 2013_DECEMBER.json и так далее лежат джейсоны с геоданными. Именно под эти файлы я писал функциональность импорта геоданных от Гугла. И лишь вчера я понял, что в Github Issues репозитория, в тикете с названием "импорт не импортируется" меня спрашивают о совсем другом файлике. Он называется Records.json и лежит в директории Takeout -> История местоположений. И в моём частном случае весит около 180 мегабайт, а на гитхабе говорят о файле размеро аж в 4гб. Естественно, структура файла Records.json отличается от структуры файлов типа 2013_APRIL.json, так что под него пришлось быстренько набросать отдельный парсер. Несложно, но ошибка немного дурацкая.

А самое любопытное, что все джейсоны за все годы из Semantic History Location после импорта создали чуть больше 16 тысяч точек на карте, а импорт файла Records.json создал около 620 тысяч новых точек. История перемещений стала выглядеть на карте намного детальнее, браузер стал иногда ощутимо кряхтеть при загрузке страниц (над этим предстоит поработать), а мне стало вдруг как-то страшновато от того, насколько много о моих перемещениях знает Гугл. И не только Гугл. И ничего особо с этим не сделать, такой мир, такое время.

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Кроме времени я не потратил ничего, и не очень представляю, как можно монетизировать Dawarich. Это опенсорсный бесплатный инструмент для запуска на собственном железе, что как бы достаточно чётко отрезает возможности заработка на нём. Не то, чтобы меня это расстраивало.

Какие планы на будущее?

Есть некоторое количество идей и задач в бэклоге, но они в целом формируются на основе того, как я сам пользуюсь проектом. Новые идеи можно закинуть в Github Issues проекта или мне в личку (да даже в комменты к этому посту), если будет что-то интересное, попробую запланировать.

Ближайшие планы выглядят примерно так:

  • Поработать над калькуляцией статистики и более удобным/логичным её отображением
  • ✅ Обзавестись фавиконом
  • Подеплоить куда-нибудь демку приложения
  • ✅ Написать несколько инструкций по использованию и FAQ
  • ✅ Довести до ума получение данных через Overland (он, кажется, недавно порелизил OwnTracks-совместимый режим отправки данных)
  • Реализовать ежемесячный и ежегодный дайджест с информацией о перемещениях, расстоянии, посещённых городах и весях за отчётный период. Как у Гугл Таймлайна, в общем, только с блекджеком и моё.
  • ✅ Реализовать режим "Тумана войны"

Ещё лениво думаю над введением достижений, чтобы пользоваться Даварихом было чуть интереснее, но это по настроению.

Нужны ли какие-то советы или помощь Клуба?

В целом, любой фидбек будет полезен и интересен. И от людей, которые пришли посмотреть, и от тех, кто готов развернуть проект и попользоваться им на своём сервере. Можно даже чего-то попробовать поконтрибьютить на Гитхабе, но опыт показывает, что до этого доходит нечасто :)

Если вы знаете о софте, аналогичном OwnTracks или Overland, бросайте на него ссылку, я посмотрю, можно ли и имеет ли смысл вкрутить его поддержку.

Если вы умеете в мобильную разработку и заинтересованы в написании отдельного клента — дайте мне знать, возможно у нас тут стартап вот-вот нарисуется :)

Какой совет вы бы сами могли дать идущим по вашим стопам?

В какой-то момент у меня был готов какой-то MVP, но я по-прежнему трекал геоданные в OwnTracks. Было какое-то противоречивое состояние: вроде как хочется делать свою тулзу, а вроде я по-прежнему данные собираю в другую. В тот момент я понял, что если не начну загружать данные в Dawarich, то он так и останется MVP и я постепенно на него забью. Так что я перенастроил мобильное приложение OwnTracks, чтобы оно слало данные в Dawarich, быстренько написал импортировалку данных из OwnTracks, чтобы не грустить с пустой картой, и дело завертелось.

Вывод: догфуддинг работает, а недогфуддинг не работает.

Ещё разик линк, чтобы вверх не скроллить: https://github.com/Freika/dawarich

Пост готовился под пластинку Hamilton Mixtape. Оригинал лучше.

Связанные посты
78 комментариев 👇

Короче, за пару недель, прошедших с публикации оригинального поста, я наделал несколько изменений и выводов.

Первое и важное — для меня, пожалуй, Overland на iOS заменил OwnTracks. По батарейке, в принципе, всё высаживается так же, как в Овнтрекс, но зато не нужно дёргать режимы Move/Significant руками. С нормальными настройками (приложу скриншотик) всё работает без моего участия и напоминания, знай выгружай точки вечером на сервер.

Второе — по совету друга, который делает бизнес на похожей идее, только в РФ и B2B, решил попробовать разрывать маршруты, чтобы перемещения на карте перестали походить на адскую паутину. Внизу — сравнение было/стало.

Было
Было

Стало
Стало

Роуты рвутся, если между точками прошло более 500 метров расстояния или 60 минут времени. Чуть позднее вынесу это в пользовательскую настройку, чтобы кастомизация и всё такое. Карта стала выглядеть намного опрятнее.

Третье — при наведении на роут теперь видно, когда и где он начался и закончился, и сколько времени было проведено в пути. Расстояние наверное тоже можно добавить. Нраица!

Роуты стали интерактивнее
Роуты стали интерактивнее

Четвёртое — я пощупал формат .gpx и планирую реализовать его поддержку. А потом, видимо, и другие форматы пойдут, типа geojson и что там ещё распространено. В целом, есть ощущение, что это шаг уже в несколько иную сторону, чем простое логирование перемещений, потому что тот же .gpx, например, может не иметь таймстемпов у каждой точки на карте, а это потенциальная проблема. Но я буду над этим думать. Просто помните, что у этого приложения нет цели стать бэкендом для фитнес-трекеров.

Пятое — реализовать режим открытия "тумана войны" в целом несложно, и я его сделаю. Потому что это прикольно!

И last but not least — люди. @hakim, @djhrum и ещё пара человек написали мне в телеге и мы разобрали с ними изрядную пачку интересных нюансов и багов, спасибо вам за поддержку и тестирование :)

Мои настройки для Overland (iOS) выглядят так:


@Frey, выглядить стало прямо шикарно.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Выглядит круто!

А нет ощущения или даже ишьюс уже, что OwnTracks хуже трекает местоположения, чем родной гугловый софт, который возможно получает картбланш по работе в фоне? А сторонние приложения уж как повезет и зависит от вендора
https://dontkillmyapp.com/

  Развернуть 1 комментарий

@free0u, конкретно после импорта гугловского файла Records.json и взгляда на получившиеся маршруты на карте да, очевидно, что гугл собирает ОЧЕНЬ много геоданных. Но в OwnTracks можно достаточно гибко настроить режим трекинга и включать "детальный" режим (там он называется "Move"), чтобы ценой батарейки собирать более детальную картинку. В целом меня устраивает такой баланс детальности к прайваси

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@hakim, в целом в режиме Move овнтрекс в моём айфоне из 2021 года нормально так отъедает батарейку. Но можно настроить частоту считывания геопозиции в секундах и дальность перемещения, при котором происходит считывание (что раньше произошло, тогда и записали точку). Вчера катался на велике с включенным Overland, он по-умолчанию писал точки каждую секунду, это тоже нормально отняло заряда. Переставил на каждые 30 секунд — стало получше. В общем, нужен баланс :)

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@hakim, если даварихь развёрнут за ревёрс прокси, то порт не нужен, если без него, то нужен. Логин-пароль указывать не нужно, позднее я планирую вкрутить апи-токен, который нужно будет прямо в урле указать, но пока ничего такого не нужно. Ну и лучше логи серверного аппа смотреть/присылать :)

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@hakim, в правом верхнем углу основного экрана овнтрекс есть кнопка "поделиться" и за ней спрятана другая, "Send location now", можно не вставать с дивана)

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@hakim, ну я вижу что приложение отправляет запрос и получает ответ 200, вероятно, всё окей :) Какие процессы в докере запущены от давариха?

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@hakim, вроде всё норм) напиши мне в личку, подебажим вместе

  Развернуть 1 комментарий

А на Show HN не хочешь выложить?

По монетизации могу предложить донаты, реализация фич за денежку и saas (но например с упором на прайваси)

  Развернуть 1 комментарий

@zrzst, как хотя бы фавиконка будет, выложу)

Я пока вкрутил там к репозиторию линк на ko-fi, но донаты... Однажды у меня был проект, которым ежедневно пользовались люди, и которому за год задонатили 200 рублей :)

  Развернуть 1 комментарий
Oleg Zakharchenko Работаю в кафе 20 мая в 03:03

Прикольный проект.
Не понял смысл названия правда. Я прочитал его как "Даварищ". Постсовецкое сказалось наверно...

И ссылку на гит может вставить в начале и в конце?
И правильно я понял, что это сэлф-хостед визуализация статистики? А сами данные собираются через OwnTracks? Может так и монитизировать через своё приложение?

  Развернуть 1 комментарий

@zed, с немецкого "da war ich" переводится как "там я был" :)

Добавил ссылку вверх и вниз, спасибо.

Да, визуализация, но в комплекте с OwnTracks/Overland ещё и сбор новых данных тоже. Про собственное приложение... Во-первых, я не мобильщик и без понятия с какой стороны подступиться, во-вторых, не уверен, что хочу и есть в этом реальная необходимость: для телефона уже есть клиенты, которые собирают нужные геоданные и шлют их куда мне нужно, и вряд ли я со своим нулевым опытом в доменной области и мобильной разработке сделаю лучше. Но кто его знает, как оно в будущем будет, загадывать не стану

  Развернуть 1 комментарий

@Frey, Хаха, я искренне прочитал как „Товарищ“, но на букву Д.

Вообще если ты в Германии, то у вас должно быть типа «Да Вар Иш» ;)

А кстати, не пробовал выводить карты через модуль Folium и Geojson. У меня они довольно шустро летали, даже при большом количестве точек (меньше чем у тебя конечно)

  Развернуть 1 комментарий

@zed, произношения разнятся, "ищь" я слышу в основном от турков и Раммштайна

Не пробовал, у меня бэк на руби, а Folium на питоне, насколько я вижу, разве там будет какая-то совместимость?

  Развернуть 1 комментарий

Это надо чтоб смартфон круглосуточно писал трек в фоне или как-то более бережливо для батарейки работает? Google, я так понимаю, постоянно GPS не дергает.

  Развернуть 1 комментарий

@akr0n, в OwnTracks есть два (на самом деле больше) основных режима: Significant и Move. В первом геолокация считывается редко и за день может набежать ну 10-30 точек. Во втором — нон-стоп и за день можно сделать сотни точек, получив детальный трек на карте, но ценой батарейки. Почитать подробнее можно здесь: https://owntracks.org/booklet/features/location/#location-data

У меня по-умолчанию стоит Significant, мне норм. Если я хочу записать прогулку по городу, включаю Move.

  Развернуть 1 комментарий

О, как раз сегодня пытался понять, что делать с Location History, когда меняю гугл аккаунт!

Мне не нравится, что OwnTracks не трекает позицию после перезагрузки устройства, и у разработчика какая-то странная позиция по этому поводу (типа "не хочу запрашивать background location access в плей сторе"): https://github.com/owntracks/android/discussions/1095. Не удобно, и, как я понимаю, их способ трекинга с активным приложением требует больше батарейки, чем гугловый трекинг.

  Развернуть 1 комментарий

@Boris, можно поэкспериментироватьс Overland, я как раз этим планирую заняться в ближайшие активные дни :)

  Развернуть 1 комментарий

@Frey, андроид-версия какая-то полумёртвая:
https://github.com/OpenHumans/Overland_android/issues/39

  Развернуть 1 комментарий

@Boris, возможно, я мне пока актуально именно айос :) Но автор отвечает в почте, возможно имеет смысл ему там позадавать вопросы. Плюс, вроде как есть аналогичный софт, который андроид-онли, сделать эндпоинд под что-то удобное в целом тоже несложно, если что — кидай в меня ссылкой :)

  Развернуть 1 комментарий

Кайфуши!
Много лет назад выключил треки гугла, но прям грустно от того, что не так просто понять где я был в 2018, и почекать реально ли я тут уже был или глючит

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
Александр Руденко Виндоадмин. Живу приколами 21 мая в 11:16

@Frey, спасибо за хорошее описание!
Я заметил где-то посреди комментов, ты писал, что катался с OwnTracks/Overland на велике. Подскажи, пажалста, а Strava (например) ты не пользуешься?

У меня просто давно висит идея объединения треков из нескольких источников - тренировки + поездки на авто + походы пешком (которые я не трекаю через Strava), но я не то что не фронтендер, а совсем не разработчик

Есть любительский проект для Strava - statshunters.com - он собирает все тренировки оттуда и кладёт их на одну карту (и делает это лучше, чем Strava Heatmaps по платной подписке) - вот люблю ей пользоваться, потому что тоже интересно смотреть, где был, а где нет. Но и тренировочные данные вроде ЧСС мне тоже интересны, поэтому я бы не стал запускать сразу два приложения, чтобы отслеживать геопозицию

  Развернуть 1 комментарий

@Rdnask, пользуюсь стравой тоже, но не озадачивался вопросом получения из неё треков пока. Надо порисёрчить их апи (и есть ли оно вообще в каком-то виде. В Статсхантерс я публичного апи вообще не нашёл :\

  Развернуть 1 комментарий

@Frey, в Statshunters, я думаю, и не будет - они просто по API гребут данные и обсчитывают на своей стороне, там графички и таблички (и способ отображения)

  Развернуть 1 комментарий

@Rdnask, ага, у Стравы есть возможность выгрузить архив с данными, посмотрю на досуге, что с ними можно сделать

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Как ты вовремя с этой тулой:)

А случаем нет в планах добавить возможность импорта .gpx файлов вачдогом?

Юзкейс: визуализировать треки покатушек. Сделать автосинк файлов в какую-то папку, а тулой их подтягивать в общую кучу по мере добавления в папку.

  Развернуть 1 комментарий

@djhrum, пока нет, но теоретически сделать несложно :)

  Развернуть 1 комментарий

@Frey, былобы мега круто.:)

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@hakim запилил импорт .gpx в 0.7.0

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
Andrey Oshev ios разнорабочий 22 мая в 23:20

Вообще нравилась эта фича в гугл, но после смены айфона почему-то гугл больше не разрешает мне ее включать: Location History is not available for this device, че только не пробовал, но anyway, попробую развернуть selfhosted :)

  Развернуть 1 комментарий

С одной стороны здорово, а с другой стороны самую важную для меня проблему оно всё равно не решает - проблему сбора этих самых треков.

Гугл карты как-то супер коварно собирают локейшн, условно если у тебя другой апп врубил ГПС - они будут собирать точный и часто, если не врубил - редко и по сотовым вышкам + вайфаю + блютусу, плюс с датчиков гироскопа они делают примерные предположения "а не ехал ли ты на машине случайно" и притягивают к дорогам (насчёт автоматизма этого не уверен, но в полу-ручном режиме дотянуть точно можно).

Выливается это в то, что гуглкарты не жрут батарейку и имеют ебейшую точность, и все FOSS аналоги чтобы её достичь вынуждены висеть в форграунде и врубать ГПС переодически сами, что само по себе фиаско.

  Развернуть 1 комментарий

@TiraelSedai, Думаю на самом деле там на уровне оси сбор, а гуглокарты просто имеют какой-то хитрый доступ к этим данным

  Развернуть 1 комментарий

@Cooch, на андроиде может быть, а что насчёт iOS? как они там это делают?

  Развернуть 1 комментарий

@TiraelSedai, хотел бы я знать

  Развернуть 1 комментарий

@TiraelSedai, к сожалению, всё так. Бонус от бытия гигантом, надо полагать, вряд ли какой-то сторонний софт сможет так же много, детально и без вреда для батареи собирать данные

  Развернуть 1 комментарий

@TiraelSedai @Frey, Получается, что можно продолжать давать гуглу следить, но раз месяц (например) автоматически экпортировать данные себе на селфхост и дропать их у гугл (если придерживаться наивности, что гугл их все таки удаляет)

  Развернуть 1 комментарий

@nikbrain, теоретически это может сработать, но на практике есть нюанс: в архиве Takeout от гугла было два разных формата файлов, под которые я сделал импорты. Сейчас гугл убивает хранение истории перемещений на своих серверах и предлагает хранить их на устройстве пользователя вместо этого. Экспорт с устройства, насколько я знаю (живого файла у меня нет), выглядит отлично от предыдущих двух форматов, и, поскольку у меня на руках нет примера файла, я пока ещё не реализовал возможность импортировать файл, экспортированный с устройства пользователя.

Всё через жопу.

  Развернуть 1 комментарий
Святослав Игуана Старший аналитик-разработчик 25 мая в 15:09

Крутой проект. Собираюсь захостить и попробовать. Кстати, требования к машине не увидел. Это я плохо читал или они не описаны?

По поводу пуллреквестов -- можно написать подробный contributing.md со ссылкой из readme и пометить ишью тегами good first issue -- это сильно снизит порог входа желающим помочь.

  Развернуть 1 комментарий

@iggisv9t, Никаких особенных требований нет, но лучше иметь от 1гб рам :)

  Развернуть 1 комментарий

Спасибо за классный проект, так держать! Обязательно попробую, вот только допилю лабу!

Можно настроить возможность делиться местоположением. Как это делает плугин (Android only) для OSMand https://osmand.net/docs/user/plugins/osmand-tracker. Посмотри описание, там есть ещё интересных идей. Ценность решения ещё и в том, что самоотверженные параноики с дегугленными смартфонами (а я таких много знаю) не могут делиться местоположением: например, в Телеге оно использует Google maps без варианта поменять.

Имя проекта, как тут не раз отмечали, оставляет желать потыкать в АИ за идеями :)

Поддерживаются ли типы передвижений? Гуглокарты, видимо, берут среднюю скорость и прикидывают территорию (например рельсы - поезд, гора - лыжи). Таким образом можно: помечать разные типы передвижений разным цветом, считать разную статистику по этим типам, получать гиги за шаги.

  Развернуть 1 комментарий

В тему с типами передвижений можно было бы добавить фильтр по типу и например отдельный туман войны для этого типа. Не фитнес-трекинг, но бегуны, хайкеры и елосипедисты будут рады!

А кстати, на какую карту наклабывается слой с исторей? Osm или обратно Google? Интересно, можно ли вернуть функционал "ты был в таком-то заведении и наверное жрал опять".

  Развернуть 1 комментарий

@TriplEight, Про типы перемещения я буду думать в будущем, но пока неясно, получится ли детектить. Карта использует тайлы OSM, а про функционал посещения заведений уже есть фича реквест, в будущем может запилю, самому хочется

  Развернуть 1 комментарий

@Frey, Тогда можно будет трекать посещение мест и ругать за пьянство например!

  Развернуть 1 комментарий

@Frey, Типы перемещений может быть ещё советуются с другими датчиками типа акселерометра.

  Развернуть 1 комментарий

@TriplEight, Это будет не очень универсальная тема, потому что сейчас данные принимаются от двух мобильных приложений, у каждого свой формат и набор данных, и это будет только усугубляться с поддержкой новых форматов

  Развернуть 1 комментарий

Запилил туман войны, видосик по ссылке, а то тут только скриншот можно вкрутить:

https://github.com/Freika/dawarich/releases/tag/0.8.0

  Развернуть 1 комментарий

@Frey, круто! надо попробовать перед выходными, чтобы пошляться по неисхоженным местам в городе

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
Иммореев Леша Фронтенд и еще пол-стека 2 июля в 19:32

А есть ли какие-то известные gps-трекеры в виде, например, часов или просто браслетика, которые очень долго не требуют подзарядки и занимаются своей маленькой задачи записи gps-трека (без постоянного подключения в интернету)?

  Развернуть 1 комментарий

@luixo, вот мне тоже интересно на самом деле, есть какие-то gps-трекалки, которые позднее можно куда-то засинкать, но я пока ни с чем таким не экспериментировал

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Это то, что я подознательно хотел давно начать использовать. Развернул в докере локально, порт наружу выставлять не буду — достаточно, чтобы был доступ из домашней локальой сети (данные будут заливаться по WiFi). Сегодня — первый день использования Overland для iOS в связке с dawarich (+1 к звезде на GitHub). Спасибо за проект!

  Развернуть 1 комментарий

@Frey Первый вопрос по Dawarich. Увидел импорт, решил залить свои треки с Apple Watch. Выгрузил данные Apple Health Export (1159 треков на 632 Мб за два последних года). Для теста, выбрал половину 2022 года (139 треков), нажал Create Import, ничего не произошло. Выбрал один трек c пробежкой на 9 км, появилось 9,892 точек, но уже 15 минут на MacMini M1 создаются «Reverse geocoded points» (пока создалось 1,771 штука). Боюсь представить, как буду импортировать остальные 1158 треков…

Вопросы:

  1. Нужно просто подождать?
  2. Какие есть рекомендации по импорту подобных треков?
  3. Возможно, есть функция «сокращения» точек в импортируемом JSON? Очевидно, что 10 тысяч точек для одной пробежки — слишком много.

P.s. Связка с Overland работает безупречно.

  Развернуть 1 комментарий

@k007, коротко:

  1. Да, нужно просто подождать
  2. Рекомендаций нет, просто фигачь импорт всех, приложенька всё сделает :)
  3. Функции сокращения точек нет, но блин, кажется это актуальный вопрос

Подробно:

Процесс импорта (непосредственно создания точек в БД) не имеет жёсткой привязки к процессу ревёрс геокодинга, поэтому можно фигакнуть 100 файлов (небольших, я надеюсь) и точки создадутся, а дальше в фоне (с меньшим приоритетом) будет работать ревёрс геокодинг. Он запускается только для уже существующих в БД точек и на текущий момент несёт даже не информативную, а скорее декоративную функцию. В будущем я переработаю использование заревёрсгеокож(д?)енной информации, чтобы из неё можно было увидеть больше интересных данных.

Про сокращение точек: когда я экспортировал данные из Стравы и скормил их Давариху, он мне тоже нарисовал 100500 ужасно подробных точек. В теории это решается, на практике я пока ничего в эту сторону не делал: не приоритет. Но может и до этого дело дойдёт

  Развернуть 1 комментарий

@Frey, Сокращения добился вот этим скриптом — https://github.com/Alezy80/gpx_reduce. Жмет треки знатно, оставляет менее 10% от оригинала. Такие треки импортируются быстрее.

  Развернуть 1 комментарий

@k007, офигенно, возможно, будет смысл встроить аналогичный скрипт прямо в Даварихь

  Развернуть 1 комментарий

Сбацал на коленке демо: https://demo.dawarich.app/

Email: demo@demo.com
Password: demodemo

Приму в дар GPX-файлы треков, которые вам не жалко было бы засветить на демо-сайте :)

  Развернуть 1 комментарий

@Frey, Прикольно. А на чем сайтик сбацал?

  Развернуть 1 комментарий

@zed, если вопрос про сайт с докой, то на https://docusaurus.io/

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб