Новое: Фотопросмотрщик · Найдите любую фотографию путешествия, добавленную на карту.

Обновление продукта.

Самое большое обновление туристического паспорта от Immich и Mapsake

Прямая связь с самохостируемой библиотекой Immich позволяет создавать и поддерживать атлас, а переработанный паспорт превращает эту историю в карточки, карты данных, фильтры и вращающийся глобус.

Разработано компанией. 11 минута чтения
Mapsake Экран записи с источниками импорта истории путешествий, такими как Apple Photos, Immich и другие.

Самое большое обновление Mapsake на сегодняшний день.

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

Две самые большие части – это более глубокие элементы. Immich Поддержка и обновленный Travel Passport. Один позволяет преобразовать вашу личную фотобиблиотеку в полезные доказательства путешествий, а другой – превратить эту историю в нечто, что стоит изучить и поделиться.

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

Immich теперь является основным источником фотографий

Многие люди, заботящиеся о владении своей фотобиблиотекой, используют Immich. Это самохостинг-система для фотографий и видео, что делает ее естественным выбором для подхода Mapsake, ориентированного на локальное хранение. Сложность заключалась в том, чтобы поддерживать ее, не превращая Mapsake в еще один загрузчик фотографий и не заставляя какой-либо сервер обрабатывать историю путешествий пользователя.

Соединение выполняется напрямую. В разделе «Запись» введите URL вашего сервера Immich и API-ключ, созданный из... Настройки пользователя Immich. Mapsake хранит ключ в Apple Keychain и взаимодействует с этим сервером с устройства. Нет учетной записи Mapsake, которую нужно создавать, и нет сервиса Mapsake, который бы ее принимал.

Mapsake считывает расположенные активы на страницах, включая их координаты, даты съемки и доступную модель камеры. Он сохраняет небольшое количество необходимых метаданных для создания атласа, а затем решает эти точки с помощью той же системы определения местоположения, которая используется в Apple Photos. Миниатюры Immich могут отображаться в историях мест, а более крупный предварительный просмотр извлекается с сервера пользователя только при его открытии.

Эта последняя деталь имеет значение. Приложению не нужно дублировать библиотеку Immich, чтобы сделать ее полезной. Он хранит ссылку на каждый исходный ресурс, компактный локальный индекс путешествий и кэш миниатюр, который можно восстановить. Оригинал остается там, где его поместил владелец.

Первый импортер Immich был полезным, но неполным

Первая реализация использовала конечную точку Immich для меток на карте. Это была привлекательная отправная точка: один запрос возвращал все расположенные ресурсы с координатами и названиями мест, которые уже были определены Immich. Не было необходимости ограничивать сетевой геокодер Apple, и не было произвольного ограничения на размер библиотеки.

Эта версия могла быстро отрисовывать страны, но она еще не была настоящим источником фотографий. Простого маркера было недостаточно, чтобы Mapsake могла надежно отображать изображение, сохранять дату съемки, применять те же фильтры камеры, что и Apple Photos, или удалять одно изображение с карты, не удаляя при этом все местоположение.

Таким образом, импортер перешел к поиску метаданных с постраничной навигацией в Immich. Теперь у каждого ресурса есть стабильный идентификатор источника, дата, координаты и доступная модель камеры EXIF. Mapsake присваивает идентификатору префикс Immich перед размещением его в общем хранилище метаданных фотографий, чтобы он никогда не конфликтовал с идентификатором Apple Photos, который может содержать тот же текст.

Эта миграция также исправила тонкое несоответствие в продукте. До этого место, полученное из Immich, могло отображать количество фотографий, но открывать пустую сетку фотографий. Карта знала, что изображения существуют, в то время как история места не знала, как их получить. Обработка Immich как источника, индексируемого так же, как Photos, привела к тому, что количество, фильтры, миниатюры, исключения, тепловые карты и истории стали согласованы.

Один импортер, несколько источников

Immich также спровоцировал полезную реструктуризацию. Исходная функция импорта фотографий объединяла доступ к источнику, определение местоположения, слияние, отслеживание прогресса и отображение в одной модели. Это работало для Apple Photos, но потребовало бы отдельной ветки для каждого нового сервиса.

Mapsake теперь разделяет эти обязанности. Источник создает нормализованные записи о местоположении. Безголовый импортер группирует или объединяет их, применяет одни и те же правила иерархии и объединяет результат в карту. Фронтенд обеспечивает отображение прогресса и возможность просмотра, а фоновая синхронизация может вызывать тот же движок без создания интерфейса.

Преимущества выходят за рамки Immich. Импортеры файлов, Nomads и будущие интеграции могут сохранять свои собственные правила синтаксического анализа, одновременно используя общие правила, определяющие, когда город подразумевает регион и страну, как обрабатываются дубликаты и какой существующий маркер следует обновить, а не создавать новый.

Это менее эффектно, чем новая карта, но это тот вид внутренних ограничений, который делает многофункциональное приложение понятным. Новый импортер должен в основном отвечать на вопрос «как мне прочитать этот источник?», а не повторять ответ на вопрос «что такое место?».

Фоновая синхронизация без непрерывного отслеживания.

После первой загрузки Immich можно включить в качестве необязательного фонового источника данных. Когда система предоставляет Mapsake фоновое время, приложение снова проверяет сервер, обновляет локальную снимок ресурсов и объединяет недавно обнаруженные места на карте. Уведомления о новых местах остаются необязательными.

Это не непрерывная GPS-навигация. Mapsake восстанавливает данные из дат и местоположений фотографий, хранящихся в Immich. Он также сохраняет инструменты просмотра и редактирования, которые важны, когда метаданные неполны: фильтры устройств, минимальные пороги количества фотографий, проверка местоположений и возможность исключить отдельное изображение из карты, не удаляя его из исходного файла.

Immich не предоставляет все поля, доступные в Apple Photos. В частности, высота и скорость недоступны через этот путь, поэтому фильтры, основанные на этих полях, не влияют на активы Immich. Я бы лучше четко указал это, чем притворяться, что все источники идентичны.

Синхронизация должна выполняться безопасно.

Фоновые процессы выполняются на платформах Apple эпизодически. Приложение может запрашивать данные о местоположении, но не может гарантировать, что iOS включит его в определенное время. Самостоятельно размещенный сервер также может быть недоступен, доступен только через домашнюю сеть или временно возвращать ошибку авторизации после изменения ключа API.

Mapsake считает исходный снимок авторитетным только после успешной загрузки. Неудачная попытка не удаляет последнюю рабочую карту. Приложение записывает статус источника, планирует повторную попытку и подсчитывает количество последовательных сбоев. После нескольких неудачных попыток загрузки данных из внешнего источника автоматизация отключается, и пользователю сообщается об этом, вместо того, чтобы бесконечно пытаться повторить попытку.

Та же служба выполняет быструю проверку при возврате приложения в активное состояние, что обеспечивает практический способ синхронизации даже при консервативной настройке планирования в фоновом режиме. Ручная синхронизация по-прежнему доступна, поскольку намерения пользователя всегда должны превалировать над эвристикой планировщика.

Ключ API никогда не отображается в журналах, экспортируемых файлах или в обмене данными Passport. В журналах указывается источник и сообщается количество или коды состояния, что достаточно для диагностики большинства сбоев, не превращая трассировку отладки в утечку учетных данных.

Passport стал настоящим вторым домом для атласа путешествий.

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

Новый Passport – это набор интерактивных историй, созданных на основе одних и тех же данных о путешествиях:

  • Карта мира и карточка с процентом посещенного мира для «Посещено», «Прожито», «В планах» или комбинированного вида.
  • Флаги стран, прогресс по континентам, регионы, города, аэропорты, количество фотографий и дни пребывания.
  • Фильтры по региону и году, чтобы карта всей жизни могла быть представлена как один континент или одна глава.
  • Карты данных, раскрашенные по количеству фотографий, дате съемки или времени, проведенному на месте.
  • Разноцветные варианты карточек и индивидуальные настройки цвета для каждой карточки.
  • Видеоролик с вращающимся глобусом, который отображается на устройстве в виде видео, готового для публикации в социальных сетях.

Каждая карточка использует одну и ту же базовую модель данных Passport. Это обеспечивает согласованность сумм, когда кто-то меняет фильтр, регион или год, и позволяет основным функциям Passport, Passport для друзей, общим карточкам, виджетам и Apple TV использовать одни и те же вычисления, а не создавать отдельные версии правды.

Первый прототип альтернативной карточки показал, почему важна общая модель. Легко создать красивую сетку континентов, которая подсчитывает страны одним способом, и карту, которая подсчитывает территории другим способом. Обе могут выглядеть правдоподобно по отдельности. Но рядом они кажутся противоречивыми.

Данные паспорта рассчитываются до выбора конкретной карточки. Они содержат выбранную область просмотра, временной диапазон, регион, количество, флаги, общее количество фотографий, диапазон дат, покрытие, границы обрезки и цвета карты. Карточка определяет, как эти значения будут отображаться, но не переопределяет их.

Это разделение позволило создать горизонтальные варианты карточек. Перетаскивание не загружает новый набор данных и не перезапускает импорт. Оно меняет визуальный аргумент: карта в первую очередь, цифры в первую очередь, флаги в первую очередь или отсортированный список. Кнопка «Поделиться» получает видимый вариант, поэтому экспортируемое изображение – это карточка, которую пользователь фактически выбрал, а не первая карточка в ее семействе.

Паспорт должен быть личным, но при этом оставаться читаемым.

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

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

Фильтрация по региону стала чем-то большим, чем просто выпадающий список. Выбор континента изменяет границы отображения карты и заменяет глобальное покрытие на полезные субрегионы: Юго-Восточная Азия, Балканы, страны Северной Европы или охват штатов и провинций в Северной Америке. Фильтрация по году применяется к той же идее во времени. Паспорт может описывать всю жизнь или только то, что было актуально на момент 2016.

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

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

Почему лучше создать короткое видео, чем записывать экран?

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

Рендер рила использует специальный глобус SceneKit и прозрачную накладку со статистикой. Кадры записываются в видео H.264 с известным вертикальным размером, с контролируемой продолжительностью вращения и без элементов интерфейса. Живая карточка Passport использует ту же скорость глобуса, поэтому нажатие кнопки «Поделиться» ощущается как экспорт того, что уже отображается на экране, а не переход к другой анимации.

Этот автономный рендерер намеренно отделен от глобуса Apple Maps, используемого для повседневного изучения. MapKit отлично подходит для интерактивных карт, но это не детерминированный видеорендер. Сохранение старой геометрии и путей SceneKit для карточек, лент, виджетов и Apple TV – это дублирование с определенной целью: этим поверхностям нужны воспроизводимые пиксели без активного сервиса карт.

Генерация видео происходит локально и отображает прогресс, поскольку для создания нескольких секунд видео высокого разрешения требуется значительная вычислительная мощность. После завершения пользователь может сохранить видео в Photos, отправить его через Messages или открыть системное меню обмена. Mapsake не требует учетной записи в социальной сети или конечной точки для загрузки, чтобы создать результат, готовый для публикации в социальных сетях.

Один источник истины, множество способов доступа к нему

Immich и Passport могут показаться несвязанными функциями, но они решают смежные части одной и той же проблемы. Импорт делает атлас достаточно полным, чтобы быть надежным. Passport делает эту полную запись легко доступной для повторного просмотра.

Распознанная фотография может стать городом, регионом и страной; вносить вклад в тепловые карты фотографий и времени съемки; добавлять время к поездке; заполнять карту паспорта; и обогащать историю места. Исправьте основную метку один раз, и все отображения должны соответствовать.

Это архитектурное направление Mapsake: одна надежная история путешествий с несколькими представлениями, а не с несколькими базами данных.

Существуют определенные ограничения. Для получения миниатюр и новой синхронизации устройство должно быть доступно для Imich. iOS определяет, когда запускаются фоновые процессы. Метаданные фотографий могут показать, где был установлен фотоаппарат, но не объясняют, почему путешественник был там. Статистика паспорта точна только настолько, насколько точны указанные даты и отметки.

Именно эти ограничения позволяют редактировать каждый слой. Автоматизация должна помочь пользователю быстро создать надежную карту; она никогда не должна создавать ощущение, что запись невозможно исправить.

Как попробовать

  1. Открыть. Записать, Выберите. Добавить места из медиафайлов сервера Immich, и укажите URL-адрес вашего сервера и API-ключ.
  2. Проверьте соединение, запустите импорт и просмотрите места перед сохранением.
  3. При желании включите Immich в фоновую синхронизацию, чтобы атлас постоянно обновлялся.
  4. Открыть. Паспорт, Используйте, чтобы изменить объектив, а затем попробуйте фильтры по региону и году.
  5. Проведите пальцем по карте, чтобы изменить ее вид, изменить цвета или создать видео с вращающимся глобусом.

Mapsake остается бесплатной, без рекламы, подписки или обязательной учетной записи. Цель крупного обновления – не создание большего количества вещей для продажи, а повышение полезности атласа.

Иконка приложения Mapsake

Независимый разработчик Mapsake, рассказывающий о разработке продукта, картографии, конфиденциальности и работе с платформой Apple.

Создайте свою собственную карту путешествий.

Начните с истории ваших путешествий, которая уже у вас есть.

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

Скачать Mapsake бесплатно.