새로운 기능: 사진 탐색기 · 지도에 표시된 모든 여행 사진을 찾기

제품 업데이트.

Immich 및 Mapsake의 가장 큰 여행 여권 업데이트

자체 호스팅 Immich 라이브러리에 직접 연결하여 여행 가이드북을 만들고 유지 관리할 수 있으며, 재설계된 Passport는 동일한 기록을 카드, 데이터 지도, 필터 및 회전하는 지구 릴로 변환합니다.

에 의해. 11 분 읽기
Mapsake 기록 화면: Apple Photos, Immich 및 기타 여행 기록 가져오기 소스 표시

지금까지 출시된 가장 큰 Mapsake 업데이트.

Mapsake는 비교적 간단한 약속으로 시작되었습니다. 방문한 장소, 거주한 장소, 그리고 다음에 방문하고 싶은 장소를 표시하고, 해당 기록을 비공개로 유지하고 휴대 가능하게 만드는 것입니다. 지도는 여전히 앱의 중심이지만, 이번 릴리스에서는 실제 여행 기록을 지도에 얼마나 빠르게 추가할 수 있는지, 그리고 지도에서 무엇을 할 수 있는지에 대한 방법이 변경되었습니다.

가장 큰 두 부분은 더 깊숙한 곳에 있습니다. Immich 지원 및 재구성된 여행 여권. 하나는 자체 호스팅 사진 라이브러리를 유용한 여행 증거로 변환하고, 다른 하나는 해당 기록을 탐색하고 공유할 가치가 있는 것으로 만듭니다.

지금까지 Mapsake에서 가장 큰 업데이트이지만, 설정 항목이 가장 많은 것이 아니라, 비공개 소스 데이터에서 완성된 개인 지도를 만드는 전체 프로세스를 완료하기 때문입니다.

Immich는 이제 주요 사진 소스입니다.

사진 라이브러리를 소유하는 데 관심이 많은 사람들이 Immich를 사용합니다. Immich는 자체 호스팅 사진 및 비디오 시스템으로, Mapsake의 로컬 우선 접근 방식과 자연스럽게 어울립니다. 어려운 점은 Mapsake를 또 다른 사진 업로드 서비스로 만들거나, 누군가의 여행 기록을 처리하기 위해 중간 서버를 사용하지 않고도 이를 지원하는 것입니다.

연결은 직접적입니다. Record에서 Immich 서버의 URL과 생성한 API 키를 입력합니다. Immich의 사용자 설정. Mapsake는 키를 Apple Keychain에 저장하고, 장치에서 해당 서버와 통신합니다. Mapsake 계정을 만들 필요가 없으며, Mapsake 서비스를 이용하지 않습니다.

Mapsake는 페이지 내의 자산의 좌표, 촬영 날짜 및 사용 가능한 카메라 모델을 포함한 정보를 읽습니다. 지도를 만들 수 있도록 필요한 최소한의 메타데이터만 저장하고, Apple Photos에서 사용하는 것과 동일한 위치 파이프라인을 사용하여 해당 지점을 해결합니다. Immich 썸네일은 위치 스토리에서 표시되며, 더 큰 미리보기는 사용자 서버에서 열 때만 가져옵니다.

이 마지막 세부 사항이 중요합니다. 앱은 유용하게 만들기 위해 Immich 라이브러리를 복제할 필요가 없습니다. 각 소스 자산에 대한 참조, 작고 로컬 여행 인덱스 및 재생 가능한 썸네일 캐시를 유지합니다. 원본은 소유자가 배치한 위치에 그대로 유지됩니다.

첫 번째 Immich 가져오기는 유용했지만 불완전했습니다.

첫 번째 구현에서는 Immich의 맵 마커 엔드포인트를 사용했습니다. 이는 매력적인 시작점이었습니다. 하나의 요청으로 Immich가 좌표와 위치 이름을 이미 해결한 모든 위치에 있는 자산을 반환했습니다. Apple의 네트워크 지오코더를 스로틀할 필요가 없었고, 라이브러리 크기에 대한 임의의 제한도 없었습니다.

이 버전은 국가를 빠르게 그릴 수 있었지만, 아직 완벽한 사진 소스가 아니었습니다. 단순히 마커만으로는 Mapsake가 이미지를 다시 표시하거나, 캡처 날짜를 보존하거나, Apple Photos와 동일한 카메라 필터를 적용하거나, 지도의 이미지 하나만 삭제하여 전체 장소를 삭제하는 데 필요한 충분한 영구적인 식별 정보를 제공할 수 없었습니다.

따라서 Importer는 Immich의 페이지가 있는 메타데이터 검색으로 이동했습니다. 이제 각 자산에는 안정적인 소스 식별자, 날짜, 좌표 및 사용 가능한 EXIF 카메라 모델이 있습니다. Mapsake는 공유 사진 메타데이터 저장소에 배치하기 전에 식별자를 Immich 접두사로 명명하여 Apple Photos 식별자와 충돌하지 않도록 합니다.

이 마이그레이션은 미묘한 제품 불일치를 수정했습니다. 이전에는 Immich에서 파생된 장소가 사진 수를 보고했지만 빈 사진 그리드로 열릴 수 있었습니다. 맵은 이미지가 존재한다는 것을 알았지만, 장소 스토리에서는 이를 검색하는 방법을 몰랐습니다. Photos와 동일한 유형의 인덱싱된 소스인 Immich를 처리함으로써, 개수, 필터, 썸네일, 제외, 히트맵 및 스토리가 일치했습니다.

하나의 가져오기 도구, 여러 소스

Immich는 매우 유용한 리팩토링을 수행했습니다. 원래 사진 가져오기 기능은 데이터 소스 접근, 위치 확인, 병합, 진행 상황 및 표시를 하나의 모델로 결합했습니다. 이는 Apple Photos에서는 작동했지만 새로운 서비스마다 별도의 브랜치가 필요했을 것입니다.

Mapsake은 이제 이러한 책임을 분리합니다. 소스는 정규화된 위치 정보를 생성합니다. 헤드리스 가져오기 엔진은 이를 클러스터링하거나 해결하고, 동일한 계층 구조 규칙을 적용하고, 결과를 지도에 병합합니다. 프런트 엔드 화면은 진행 상황과 검토를 제공하며, 백그라운드 동기화는 인터페이스를 구축하지 않고도 동일한 엔진을 호출할 수 있습니다.

이점은 Immich를 넘어섭니다. 파일 가져오기, Nomads 및 향후 통합은 각 소스별 구문 분석을 유지하면서 도시가 지역과 국가를 의미하는 조건, 중복 처리 방법, 기존 마커를 다시 만들지 않고 업데이트할 마커를 결정하는 규칙과 같은 규칙을 공유할 수 있습니다.

새로운 카드보다 덜 화려하지만, 풍부한 기능을 제공하는 앱을 이해하기 쉽게 만드는 내부적인 요소입니다. 새로운 가져오기 기능은 주로 "어떻게 이 소스를 읽어야 할까요?"라는 질문에 답해야 하며, "장소란 무엇을 의미할까요?"라는 질문을 반복적으로 할 필요가 없습니다.

지속적인 추적 없이 백그라운드 동기화

첫 번째 가져오기 후에는 Immich를 선택적 백그라운드 데이터 소스로 활성화할 수 있습니다. 시스템이 Mapsake에 백그라운드 시간을 허용하면 앱은 서버를 다시 확인하고 로컬 자산 스냅샷을 업데이트하고 새롭게 발견된 장소를 지도에 통합합니다. 새 장소에 대한 알림은 선택 사항으로 유지됩니다.

이는 연속적인 GPS 추적 기능이 아닙니다. Mapsake는 사진의 날짜와 위치 정보를 기반으로 기록을 재구성합니다. 또한, 메타데이터가 불완전한 경우 유용한 장치 필터, 최소 사진 수, 장소 확인 기능, 그리고 원본에서 이미지를 삭제하지 않고 지도에서 개별 이미지를 제외하는 기능과 같은 편집 도구를 계속 사용할 수 있습니다.

Immich는 Apple Photos에서 제공할 수 있는 모든 필드를 노출하지 않습니다. 특히 고도와 속도는 이 방법을 통해 사용할 수 없으므로 이러한 필드를 기반으로 하는 필터는 Immich 자산에 영향을 미치지 않습니다. 모든 데이터 소스가 동일하다고 가장하는 것보다 경계를 명확하게 설명하는 것이 좋습니다.

동기화는 안전하게 실패해야 합니다.

백그라운드 작업은 Apple 플랫폼에서 기회주의적으로 수행됩니다. 앱은 위치 정보를 요청할 수 있지만, iOS가 정확한 분에 위치 정보를 제공한다는 보장은 없습니다. 자체 호스팅 서버는 오프라인 상태가 될 수 있으며, 홈 네트워크를 통해서만 액세스할 수 있거나, API 키가 변경된 후 일시적으로 인증 오류를 반환할 수 있습니다.

Mapsake는 성공적으로 가져온 경우에만 소스 스냅샷을 신뢰하는 것으로 간주합니다. 요청이 실패하더라도 마지막으로 정상 작동한 지도는 삭제되지 않습니다. 앱은 소스 상태를 기록하고 작업을 다시 예약하며 연속적인 실패 횟수를 계산합니다. 네트워크 소스에서 반복적인 실패가 발생하면 해당 자동화는 비활성화되고 사용자에게 알립니다. 무한 반복은 없습니다.

동일한 서비스는 앱이 전경으로 돌아올 때 경량 검사를 수행하여 백그라운드 스케줄링이 제한되어 있는 경우에도 동기화를 가능하게 합니다. 사용자의 의도가 스케줄링 규칙보다 우선되어야 하므로 수동 동기화 옵션도 제공됩니다.

API 키는 로그, 내보내기 또는 Passport 공유에 나타나지 않습니다. 로그에는 소스 이름과 개수 또는 상태 코드가 표시되며, 대부분의 오류를 진단하는 데 충분합니다. 디버깅 정보를 자격 증명 유출로 만들지 않습니다.

여정 기록은 여행 지도에 대한 진정한 또 다른 보금자리였습니다.

원래의 Passport는 간단한 통계 화면이었습니다. 국가와 대륙의 수를 세고 공유 가능한 카드를 생성했습니다. 유용하지만, 그 뒤에 있는 지도보다 훨씬 작습니다.

새로운 Passport는 동일한 여행 기록에서 구축된 슬라이드 가능한 스토리 모음입니다.

  • 방문, 거주, 다음 방문 예정 또는 결합된 뷰를 보여주는 세계 지도와, 방문한 세계의 비율을 나타내는 카드.
  • 국기, 대륙 진행 상황, 지역, 도시, 공항, 사진 수 및 체류 일수.
  • 지역 및 연도 필터를 사용하면 평생 여행 지도를 대륙별 또는 장별로 나눌 수 있습니다.
  • 사진 수, 최근성 또는 체류 시간으로 색상 구분된 데이터 지도.
  • 다양한 색상의 카드와 카드별 색상 설정 기능.
  • 기기에서 렌더링되어 소셜 미디어에 공유할 수 있는 동영상으로 표시되는 회전하는 지구 영상.

모든 카드는 동일한 Passport 데이터 모델을 사용합니다. 이를 통해 렌즈, 지역 또는 연도를 변경하더라도 총계가 항상 일관성을 유지하며, 주요 Passport, 친구용 Passport, 공유 카드, 위젯, 그리고 Apple TV에서 동일한 계산을 재사용할 수 있으므로 진실의 별도 버전을 만들 필요가 없습니다.

첫 번째 대체 카드 프로토타입은 공유 모델이 중요한 이유를 보여주었습니다. 아름다운 대륙 그리드를 만들어 한 방식으로 국가 수를 세고, 지도 카드에서 다른 방식으로 영토 수를 세는 것은 쉽습니다. 둘 다 개별적으로 보면 타당해 보일 수 있습니다. 하지만 나란히 보면 모순이 분명해집니다.

여권 데이터는 특정 카드가 선택되기 전에 계산됩니다. 여기에는 선택한 여행 렌즈, 시간 및 지역 범위, 개수, 플래그, 사진 총계, 날짜 범위, 커버리지, 자르기 경계, 그리고 지도 색상이 포함됩니다. 카드는 이러한 값을 표현하는 방법을 결정하지만, 다시 결정하지는 않습니다.

이 분할을 통해 수평 카드 변형이 가능해졌습니다. 슬라이딩은 새로운 데이터 세트를 로드하거나 가져오기를 다시 실행하지 않습니다. 이는 시각적 표현을 변경하는 것뿐입니다. 지도 우선, 숫자 우선, 플래그 우선 또는 순위 목록을 선택할 수 있습니다. 공유 버튼은 사용자가 실제로 선택한 변형을 가져오므로 내보낸 이미지는 해당 카드 패밀리의 첫 번째 카드 대신 사용자가 선택한 카드입니다.

여권은 가독성을 잃지 않으면서 개인적인 느낌을 주어야 합니다.

생생한 카드 시스템은 일반적인 흰색 통계 패널을 넘어선 시도를 시작으로 탄생했습니다. 렌즈 색상은 이제 그라데이션과 하이라이트를 제공하며, 대륙은 자체 팔레트를 사용할 수 있고, 지도 카드는 사실을 변경하지 않고도 비행 경로나 빛나는 지구를 추가할 수 있습니다.

사용자 정의 기능으로 인해 추가적인 제한 사항이 적용되었습니다. 텍스트, 강조 표시, 배경색은 카드별로 편집할 수 있지만, 렌더러는 밝은 모드와 어두운 모드 모두에서 대비를 유지해야 하며, 소셜 공유 해상도에서도 동일해야 합니다. 기본 설정은 대부분의 작업을 처리하며, 사용자가 자신의 여행 기록을 자신의 지도나 특정 여행에 맞추고 싶을 때 편집 기능을 제공합니다.

지역 필터는 단순히 드롭다운 메뉴가 아닙니다. 대륙을 선택하면 지도 표시 범위를 변경하고 전 세계 범위를 유용한 하위 지역(동남아시아, 발칸 반도, 북유럽 국가 또는 북미의 주 및 도)로 바꿉니다. 연도 필터도 동일한 개념을 적용합니다. 여권은 전체 인생을 기록할 수도 있고, 2016 시점까지의 기록만 나타낼 수도 있습니다.

데이터-맵 카드는 또 다른 통합 지점이었어요. 사진, 최근성, 경과 시간은 Atlas 모드의 초기 단계였습니다. 이러한 공유 메트릭과 색상 로직을 두 인터페이스 모두 아래로 이동함으로써 Passport는 Atlas에서 표시하는 히트맵을 정확하게 내보낼 수 있었고, 분리된 범례도 함께 제공되었습니다.

릴도 마찬가지입니다. 이는 앱 인터페이스의 녹화가 아닙니다. Mapsake는 지구본, 강조 표시된 국가, 통계 및 브랜드 오버레이를 적절한 비디오로 렌더링하고 완성된 파일을 일반 공유 시트에 전달합니다. 자동으로 아무 것도 게시되지 않습니다.

왜 화면 녹화 대신 짧은 동영상을 만들까요?

화면 녹화는 내비게이션 바, 터치 표시기, 기기 크기, 그리고 실시간 인터페이스가 유지하는 프레임 속도를 포함합니다. 또한, 내보낸 결과는 사용자가 동일한 제스처를 정확하게 수행하는지에 따라 달라집니다.

릴 렌더러는 전용 SceneKit 지구본과 투명한 통계 오버레이를 사용합니다. 프레임은 알려진 수직 크기의 H.264 비디오에 작성되며, 제어된 회전 기간과 인터페이스 요소가 없습니다. 라이브 Passport 카드는 동일한 지구본 속도를 사용하므로 공유 버튼을 누르면 화면에 표시된 것을 내보내는 것과 같은 느낌을 받습니다.

이 오프스크린 렌더러는 일상적인 탐색에 사용되는 Apple Maps의 지구가공과는 별개로 설계되었습니다. MapKit은 대화형 지도의 스트리밍에 뛰어나지만, 결정적인 비디오 렌더링 기능은 없습니다. 카드, 리프, 위젯 및 Apple TV에 사용되는 이전의 지오메트리와 SceneKit 경로는 중복되지만, 이는 의도적인 설계입니다. 이러한 인터페이스는 실시간 지도 서비스 없이도 반복 가능한 픽셀을 필요로 하기 때문입니다.

비디오 생성은 로컬에서 이루어지며, 진행 상황이 표시됩니다. 이는 고해상도 프레임의 몇 초를 처리하므로 상당한 작업이 필요합니다. 완료되면 사용자는 비디오를 사진에 저장하거나, 메시지로 보내거나, 시스템 공유 기능을 사용하여 공유할 수 있습니다. Mapsake는 소셜 미디어에서 공유할 수 있는 결과를 만들 수 있지만, 소셜 계정이나 업로드 기능이 필요하지 않습니다.

하나의 진실, 그리고 이를 참조하는 여러 방법

Immich와 여권은 겉보기에는 관련이 없어 보이지만 동일한 문제의 인접한 부분을 해결합니다. 가져오기 기능은 아틀라스를 충분히 완성하여 신뢰할 수 있도록 합니다. 여권 기능은 해당 기록을 쉽게 다시 확인할 수 있도록 합니다.

위치 정보가 포함된 사진은 도시, 지역, 국가가 되며, 사진 및 촬영 시기의 히트맵에 기여하고, 여행 시간을 추가하고, 여권 카드를 채우고, 장소의 이야기를 풍부하게 합니다. 위치 정보를 한 번 수정하면 모든 표시에서 반영됩니다.

이것이 Mapsake의 아키텍처 방향입니다. 여러 데이터베이스가 아닌 여러 뷰를 가진 견고한 단일 여행 기록입니다.

여전히 몇 가지 제약 사항이 있습니다. Imich는 썸네일 이미지와 새로운 동기화를 위해 장치에서 접근 가능해야 합니다. iOS는 백그라운드 작업이 실행되는 시점을 결정합니다. 사진 메타데이터는 카메라가 특정 위치에 있었음을 알 수 있지만, 여행자가 그곳에 있었던 이유를 알려주지는 않습니다. 여권 통계는 제공된 날짜와 정보의 정확성에 따라 달라집니다.

이러한 제한 사항 때문에 모든 레이어가 편집 가능합니다. 자동화는 신뢰할 수 있는 지도를 빠르게 만들 수 있도록 도와야 하지만, 기록이 수정 불가능하게 느껴지도록 만들어서는 안 됩니다.

사용해 보는 방법

  1. 열기. 기록, 을 선택하세요. Immich 서버 미디어에서 위치 추가, 을 사용하여 서버 URL과 API 키를 연결하세요.
  2. 연결을 테스트하고, 가져오기를 실행하고, 저장하기 전에 장소를 확인합니다.
  3. 아틀라스를 최신 상태로 유지하려면 백그라운드 동기에서 Immich를 선택적으로 활성화할 수 있습니다.
  4. 열기. 여권, 에서 렌즈를 변경한 다음 지역 및 연도 필터를 시도해 보세요.
  5. 카드를 슬라이드하여 다른 레이아웃을 확인하거나, 색상을 변경하거나, 회전하는 지구본 동영상을 만들 수 있습니다.

Mapsake는 광고, 구독 또는 필수 계정이 없는 무료 서비스입니다. 더 큰 업데이트의 목적은 더 많은 것을 판매하는 것이 아니라 지도를 더 유용하게 만드는 것입니다.

Mapsake 앱 아이콘

Mapsake의 독립 개발자가 작성했으며, 앱 뒤에 있는 제품, 지도, 개인 정보 보호 및 Apple 플랫폼 작업에 대한 정보를 제공합니다.

나만의 여행 지도를 만드세요.

이미 가지고 있는 여행 기록부터 시작하세요.

Mapsake은 무료이며, 핵심 기능 사용을 위해 Mapsake 계정이 필요하지 않으며, 지원되는 사진 매칭 기능은 장치 내에서 작동합니다.

Mapsake 무료 다운로드