Nuovo: Esplora foto · Trova qualsiasi foto di viaggio cartografiata.

Aggiornamento del prodotto

Il più grande aggiornamento della

Una connessione diretta a una libreria Immich ospitata localmente può ora creare e mantenere la mappa, mentre un Passaporto riprogettato trasforma la stessa cronologia in schede, mappe di dati, filtri e un globo rotante.

Di. 11 minuto di lettura
Mapsake: Registra i tuoi viaggi con Apple Foto, Immich e altre fonti di importazione.

L'aggiornamento Mapsake più importante finora.

Mapsake è iniziato con una promessa piuttosto semplice: contrassegnare i luoghi che hai visitato, dove hai vissuto e che vuoi vedere, e mantenere privata e portatile questa registrazione. La mappa è sempre al centro dell'app, ma questa versione cambia la velocità con cui una vera cronologia di viaggio può apparire in essa e cosa puoi fare una volta che ci è.

Le due parti più grandi sono più profonde. Immich supporto e una Guida di viaggio riprogettata. Quest'ultima trasforma una libreria di foto ospitata localmente in prove di viaggio utili; quest'ultima trasforma questa storia in qualcosa di degno di essere esplorato e condiviso.

Questo è l'aggiornamento più grande di Mapsake finora, non perché aggiunga la lista più lunga di impostazioni, ma perché chiude il ciclo dai dati della fonte privati a un atlante personale completo.

Immich è ora una fonte di foto di prima classe.

Molte persone che si preoccupano di possedere la propria libreria di foto utilizzano Immich. È un sistema di foto e video auto-ospitato, il che lo rende una scelta naturale per l'approccio locale di Mapsake. La sfida era supportarlo senza trasformare Mapsake in un altro caricatore di foto o chiedendo a un server intermedio di elaborare la cronologia dei viaggi di qualcuno.

La connessione è diretta. Nelle impostazioni, inserisci l'URL del tuo server Immich e una chiave API creata da lì. Impostazioni utente di Immich.. Mapsake memorizza la chiave nel portachiavi di Apple e comunica dal dispositivo a quel server. Non esiste un account Mapsake da creare e nessun servizio Mapsake che riceve la libreria.

Mapsake legge le risorse di posizione nelle pagine, inclusi le coordinate, le date di acquisizione e il modello della fotocamera disponibile. Salva la piccola quantità di metadati necessari per creare l'atlante, quindi risolve tali punti tramite la stessa pipeline di posizione utilizzata da Apple Photos. Le miniature di Immich possono apparire nelle storie di posizione, mentre un'anteprima più grande viene recuperata dal server dell'utente solo quando viene aperta.

Questo ultimo dettaglio è importante. L'app non deve duplicare una libreria Immich per renderla utile. Mantiene un riferimento a ogni risorsa di origine, un indice di viaggi locale e compatto e una cache di miniature rigenerabili. L'originale rimane dove il suo proprietario lo ha posizionato.

Il primo importatore di Immich era utile, ma incompleto.

L'implementazione iniziale ha utilizzato il punto finale del marcatore della mappa di Immich. Questo è stato un punto di partenza promettente: una richiesta ha restituito tutti gli asset localizzati con le coordinate e i nomi dei luoghi già risolti da Immich. Non era necessario utilizzare il servizio di geocodifica di rete di Apple e non c'era un limite arbitrario alle dimensioni della libreria.

Questa versione poteva rappresentare rapidamente i paesi, ma non era ancora una vera fonte di foto. Un semplice marcatore non forniva a Mapsake un'identità duratura sufficiente per visualizzare nuovamente l'immagine, preservarne la data di acquisizione, applicare gli stessi filtri della fotocamera di Apple Photos o rimuovere un'immagine dalla mappa senza rimuovere un intero luogo.

L'importatore si è quindi spostato nella ricerca di metadati paginata di Immich. Ogni elemento dispone ora di un identificatore di origine stabile, una data, coordinate e un modello di fotocamera EXIF disponibile. Mapsake prefissa l'identificatore con un prefisso Immich prima di posizionarlo nello spazio di archiviazione condiviso dei metadati delle foto, in modo che non possa mai entrare in conflitto con un identificatore Apple Foto che contiene lo stesso testo.

Questa migrazione ha corretto anche una sottile incoerenza del prodotto. In precedenza, un luogo derivato da Immich poteva mostrare un conteggio delle foto, ma aprendolo, mostrava una griglia di foto vuota. La mappa sapeva che le immagini esistevano, mentre la storia del luogo non sapeva come recuperarle. Trattare Immich come una fonte indicizzata dello stesso tipo di Foto ha permesso di far corrispondere conteggi, filtri, miniature, esclusioni, mappe di calore e storie.

Un importatore, diverse fonti

Immich ha anche portato a una refactoring utile. Il modello originale di importazione delle foto mescolava l'accesso alla sorgente, la risoluzione dei luoghi, la fusione, il progresso e la presentazione in un singolo modello. Questo era fattibile per Apple Photos, ma avrebbe creato un ramo separato per ogni nuovo servizio.

Mapsake separa ora queste responsabilità. Una sorgente produce record di posizione normalizzati. Il motore di importazione senza interfaccia utente raggruppa o risolve questi record, applica le stesse regole di gerarchia e unisce il risultato nell'atlante. L'interfaccia utente fornisce il monitoraggio dei progressi e la revisione; la sincronizzazione in background può chiamare lo stesso motore senza creare l'interfaccia.

Il vantaggio va oltre Immich. Gli importatori di file, Nomads e le integrazioni successive possono preservare la loro analisi specifica della sorgente mantenendo al contempo le regole che determinano quando una città implica una regione e un paese, come vengono gestiti i duplicati e quale marcatura esistente deve essere aggiornata anziché ricreata.

Questo è meno appariscente di una nuova scheda, ma è il tipo di confine interno che mantiene un'app ricca di funzionalità comprensibile. Un nuovo importatore dovrebbe principalmente rispondere alla domanda "come leggo questa fonte?" piuttosto che rispondere ripetutamente alla domanda "cosa significa un luogo?"

Sincronizzazione in background senza tracciamento continuo

Dopo la prima importazione, Immich può essere abilitato come fonte di background opzionale. Quando il sistema concede a Mapsake tempo di background, l'app controlla nuovamente il server, aggiorna la sua istantanea degli asset locali e unisce i nuovi luoghi scoperti nella mappa. Le notifiche per i nuovi luoghi rimangono facoltative.

Questo non è un tracciamento GPS continuo. Mapsake ricostruisce il record a partire dalle date e dalle posizioni delle foto già archiviate in Immich. Mantiene anche gli strumenti di revisione e modifica importanti quando i metadati sono incompleti: filtri del dispositivo, soglie minime di foto, ispezione dei luoghi e la possibilità di escludere una singola immagine dalla mappa senza eliminarla dalla sua fonte.

Immich non espone tutti i campi che Apple Photos può fornire. In particolare, l'altitudine e la velocità non sono disponibili tramite questo percorso, quindi i filtri basati su questi campi non influiscono sugli elementi di Immich. Preferisco dichiarare chiaramente questo limite piuttosto che fingere che ogni fonte sia identica.

La sincronizzazione deve fallire in modo sicuro

Il funzionamento in background è opportunistico sulle piattaforme Apple. L'app può richiedere l'accesso alla posizione, ma non può garantire che iOS la attivi in un minuto preciso. Un server ospitato localmente può anche essere offline, accessibile solo tramite una rete domestica, oppure può restituire temporaneamente un errore di autorizzazione dopo che una chiave API è stata modificata.

Mapsake considera lo snapshot di origine come definitivo solo dopo un recupero riuscito. Una richiesta fallita non cancella l'atlante precedente. L'app registra lo stato della fonte, riprogramma l'attività e conta i fallimenti consecutivi. Dopo diversi fallimenti della fonte di rete, disabilita tale automazione e informa l'utente invece di tentare ripetutamente all'infinito.

Lo stesso servizio esegue un controllo leggero quando l'app torna in primo piano, il che offre un percorso pratico per la sincronizzazione, anche quando la pianificazione in background è conservativa. Un'opzione di sincronizzazione manuale rimane disponibile perché l'intento dell'utente deve sempre avere la precedenza su un'euristica di pianificazione.

La chiave API non compare mai nei log, nelle esportazioni o in una condivisione Passport.

L'Atlante è diventato una vera e propria seconda casa.

Il Passport originale era uno schermo di statistiche compatto. Contava i paesi e i continenti e generava una scheda condivisibile. Utile, ma molto più piccolo della mappa sottostante.

Il nuovo Passport è una raccolta di storie scorrevoli create dallo stesso record di viaggio:

  • Una mappa del mondo e una scheda con la percentuale del mondo visitato, vissuto, da visitare, o una vista combinata.
  • Bandiere dei paesi, progressione sui continenti, regioni, città, aeroporti, numero di foto e giorni trascorsi sul posto.
  • Filtri di regione e anno, in modo che un'atlante di una vita intera possa diventare un continente o un capitolo.
  • Mappe di dati ombreggiate in base al numero di foto, alla loro freschezza o al tempo trascorso.
  • Varianti di carte colorate e controlli di colore per carta.
  • Un video di globo terrestre che viene renderizzato sul dispositivo come un video pronto per i social media.

Ogni scheda utilizza lo stesso modello di dati Passport sottostante. Questo mantiene la coerenza dei totali quando qualcuno cambia una vista, una regione o un anno, e consente all'applicazione Passport principale, all'applicazione Passport per gli amici, alle schede condivise, ai widget e ad Apple TV di riutilizzare gli stessi calcoli invece di creare versioni separate della verità.

Il primo prototipo di mappa alternativa ha rivelato perché questo modello condiviso è importante. È facile creare una bella griglia di continenti che conta i paesi in un modo e una mappa che conta i territori in un altro modo. Entrambi possono sembrare plausibili isolatamente. Uno accanto all'altro, la contraddizione è ovvia.

I dati di Passport vengono calcolati prima che venga creata qualsiasi carta specifica. Includono la vista di viaggio selezionata, l'ambito temporale e geografico, i conteggi, i flag, i totali delle foto, gli intervalli di date, la copertura, i limiti di ritaglio e i colori della mappa. Una carta decide come esprimere questi valori; non li decide di nuovo.

Questa divisione ha reso possibili le varianti di schede orizzontali. Lo scorrimento non carica un nuovo set di dati né esegue una nuova importazione. Modifica l'argomento visivo: mappa per prima, numeri per primi, bandiere per prime o un elenco ordinato. Il pulsante di condivisione riceve la variante visibile, quindi l'immagine esportata è la scheda che l'utente ha effettivamente scelto, piuttosto che la prima scheda della sua famiglia.

Un passaporto deve essere personale senza perdere la leggibilità

Il sofisticato sistema di mappe è nato come un tentativo di andare oltre i pannelli di statistiche generici e monocromatici. I colori delle lenti creano ora sfumature ed effetti di luce, i continenti possono utilizzare le proprie palette, e le mappe possono aggiungere un percorso di volo o un globo luminoso senza modificare i dati sottostanti.

La personalizzazione ha introdotto un altro limite. I colori del testo, dell'accento e dello sfondo possono essere modificati per ogni scheda, ma il rendering deve comunque preservare il contrasto sia nelle modalità chiara che scura e alla risoluzione di esportazione per i social media. Le impostazioni predefinite fanno la maggior parte del lavoro; la modifica è disponibile per coloro che desiderano che il loro Passaporto corrisponda alla propria mappa o a un viaggio specifico.

Il filtraggio delle regioni è diventato più di un semplice menu a tendina. La selezione di un continente modifica i limiti dell'area della mappa e sostituisce la copertura globale con sottoregioni utili: il sud-est asiatico, i Balcani, i paesi nordici o la copertura degli stati e delle province in Nord America. Il filtraggio degli anni applica la stessa idea al tempo. Il passaporto può descrivere un'intera vita, o solo ciò che era vero alla fine di 2016.

La scheda mappa dei dati era un altro punto di unificazione. Le foto, la freschezza e il tempo trascorso erano le modalità Atlas iniziali. Spostare la metrica e la logica del colore condivisi sotto entrambe le superfici ha permesso a Passport di esportare esattamente la mappa termica che l'Atlas mostrava, completa di una legenda discreta.

Lo stesso vale per la bobina. Non è una registrazione dell'interfaccia dell'app. Mapsake esegue il rendering del globo, dei paesi evidenziati, delle statistiche e della sovrapposizione del marchio in un video appropriato e quindi passa il file terminato alla normale scheda di condivisione. Nulla viene pubblicato automaticamente.

Perché renderizzare un reel invece di registrare lo schermo?

Una registrazione dello schermo catturerebbe le barre di navigazione, gli indicatori tattili, le dimensioni del dispositivo e la frequenza dei fotogrammi che l'interfaccia live può mantenere. Renderebbe anche il risultato esportato dipendente dal fatto che l'utente esegua lo stesso gesto correttamente ogni volta.

Il rendering della bobina utilizza un globo SceneKit dedicato e una sovrapposizione di statistiche trasparente. I fotogrammi vengono scritti in un video H.264 con un'altezza verticale nota, con una durata di rotazione controllata e senza elementi dell'interfaccia. La scheda Passaporto in diretta utilizza la stessa velocità del globo, quindi toccare Condividi fa sentire come se si stesse esportando l'elemento già sullo schermo invece di passare a un'animazione diversa.

Questo renderer offscreen è deliberatamente separato dal globo Apple Maps utilizzato per l'esplorazione quotidiana. MapKit è eccellente per le mappe interattive in streaming, ma non è un renderer video deterministico. Mantenere la geometria e i percorsi SceneKit più vecchi per le mappe, i reel, i widget e Apple TV è una duplicazione con uno scopo: queste superfici hanno bisogno di pixel ripetibili senza un servizio di mappa attivo.

La generazione di video avviene localmente e mostra i progressi perché diversi secondi di fotogrammi ad alta risoluzione rappresentano un lavoro reale. Una volta terminato, l'utente può salvarlo in Foto, inviarlo tramite Messaggi o aprire la scheda di condivisione del sistema. Mapsake non ha bisogno di un account social o di un endpoint di caricamento per creare un risultato pronto per i social media.

Un'unica fonte di verità, molti modi per accedervi.

Immich e Passport potrebbero sembrare funzionalità non correlate, ma risolvono parti dello stesso problema. L'importazione rende la mappa abbastanza completa da essere affidabile. Il "Passport" rende questo record completo facile da rivedere.

Una foto geolocalizzata può diventare una città, una regione e un paese; contribuire a mappe di calore di foto e di data; aggiungere tempo a un viaggio; compilare una scheda di passaporto; e rafforzare la storia di un luogo. Correggi il marcatore sottostante una volta e tutte le superfici devono corrispondere.

Questa è la direzione architetturale di Mapsake: una cronologia di viaggi duratura, con più visualizzazioni piuttosto che più database.

Esistono ancora limiti chiari. Immich deve essere accessibile dal dispositivo per le miniature e le nuove sincronizzazioni. iOS determina quando le attività in background vengono eseguite. I metadati delle foto possono provare che una fotocamera era in un determinato luogo, ma non perché il viaggiatore era lì. Le statistiche del passaporto sono accurate solo se le date e le etichette sono corrette.

Questi limiti sono il motivo per cui ogni livello rimane modificabile. L'automazione dovrebbe aiutare qualcuno a creare rapidamente una mappa affidabile; non dovrebbe mai far sentire il record non correggibile.

Come provarlo.

  1. Apri. Registra, scegli Aggiungi posizioni dai media del server Immich, e connetti l'URL del tuo server e la chiave API.
  2. Testare la connessione, eseguire l'importazione e controllare i luoghi prima di salvarli.
  3. Abilita opzionalmente Immich nella sincronizzazione in background se desideri che l'atlante rimanga aggiornato.
  4. Apri. Passaporto, cambia le lenti e poi prova i filtri di regione e anno.
  5. Scorri una scheda per visualizzare layout alternativi, cambia il colore di una scheda o crea una presentazione di globo rotante.

Mapsake rimane gratuito, senza pubblicità, abbonamento o account richiesto. Lo scopo di un aggiornamento più importante non è quello di creare più cose da vendere. È rendere l'atlante più utile.

Icona dell'app Mapsake

Sviluppatore indipendente di Mapsake, che spiega il funzionamento del prodotto, della mappatura, della privacy e della piattaforma Apple alla base dell'app.

Crea il tuo atlante personale.

Inizia con la cronologia dei viaggi che hai già.

Mapsake è gratuito, non richiede un account Mapsake per l'uso principale e mantiene il riconoscimento delle foto supportato sul tuo dispositivo.

Ottieni Mapsake gratuitamente