Оновлення продукту.
Найбільше оновлення туристичного паспорта від Immich та Mapsake
Прямий зв'язок із самостійно розміщеною бібліотекою 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. У журналах вказується джерело та повідомляється кількість або коди стану, що достатньо для діагностики більшості збоїв, не перетворюючи трасування налагодження на витік облікових даних.
Atlas став справжнім другим домом для мандрівників.
Спочатку 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 визначає, коли запускаються фонові процеси. Метадані фотографій можуть показати, де був встановлений фотоапарат, але не пояснюють, чому мандрівник був там. Статистика паспорта точна лише настільки, наскільки точні вказані дати та позначки.
Саме ці обмеження дозволяють редагувати кожен шар. Автоматизація повинна допомогти користувачеві швидко створити надійну карту; вона ніколи не повинна створювати відчуття, що запис неможливо виправити.
Як спробувати
- Відкрити Записати, Виберіть. Додати місця з медіафайлів сервера Immich, та вкажіть URL-адресу вашого сервера та API-ключ.
- Перевірте з’єднання, запустіть імпорт і перегляньте місця перед збереженням.
- За бажанням увімкніть Immich у фоновій синхронізації, щоб атлас постійно оновлювався.
- Відкрити Паспорт, Використовуйте, щоб змінити об'єктив, а потім спробуйте фільтри за регіоном та роком.
- Проведіть пальцем по карті, щоб змінити її вигляд, змінити кольори або створити відео з обертовим глобусом.
Mapsake залишається безкоштовною, без реклами, підписки або обов'язкового облікового запису. Мета великого оновлення – не створити більше речей для продажу, а підвищити корисність атласу.