11---
22title : Overview
33createdAt : 2025-07-20T22:35:03+08:00
4- lastModified : 2025-11-14T21:52:55 +08:00
4+ lastModified : 2025-11-15T01:31:13 +08:00
55---
66
77# Overview
@@ -45,6 +45,7 @@ Live Photo Galleries:
4545- 🌈 ** Blurhash Placeholders** - Elegant image loading experience
4646- 📱 ** Live Photo Support** - Detection and display of iPhone Live Photos
4747- ☀️ ** HDR Image Support** - Display HDR images
48+ - 🌍 ** Reverse Geocoding** - Automatic location extraction from GPS coordinates with support for Mapbox and Nominatim providers
4849
4950### Advanced Features
5051
@@ -126,6 +127,10 @@ This will automatically pull resources from the remote repository, avoiding rebu
126127- ` enableLivePhotoDetection ` : Enable Live Photo detection
127128- ` digestSuffixLength ` : Digest suffix length for deterministic IDs
128129- ` supportedFormats ` : Optional allowlist of file extensions to process
130+ - ` enableGeocoding ` : Enable reverse geocoding from GPS coordinates (default: ` false ` )
131+ - ` geocodingProvider ` : Geocoding service provider (` 'mapbox' ` | ` 'nominatim' ` | ` 'auto' ` , default: ` 'auto' ` )
132+ - ` mapboxToken ` : Mapbox access token (required when using Mapbox provider)
133+ - ` nominatimBaseUrl ` : Custom Nominatim base URL (optional, defaults to OpenStreetMap's public instance)
129134
130135#### System Observability (` system.observability ` )
131136
@@ -138,6 +143,44 @@ This will automatically pull resources from the remote repository, avoiding rebu
138143- ` performance.worker.timeout ` : Worker timeout (milliseconds)
139144- ` performance.worker.useClusterMode ` : Enable cluster mode
140145
146+ #### Geocoding Configuration Example
147+
148+ To enable reverse geocoding, configure the geocoding provider in your ` builder.config.ts ` :
149+
150+ ** Using Nominatim (Free, but rate-limited):**
151+
152+ ``` typescript
153+ {
154+ system : {
155+ processing : {
156+ enableGeocoding : true ,
157+ // Optional: use custom Nominatim instance
158+ // nominatimBaseUrl: 'https://your-nominatim-instance.com'
159+ }
160+ }
161+ }
162+
163+ ```
164+
165+ ** Using Mapbox:**
166+
167+ ``` typescript
168+ {
169+ system : {
170+ processing : {
171+ enableGeocoding : true ,
172+ mapboxToken : process .env .MAPBOX_TOKEN
173+ }
174+ }
175+ }
176+ ```
177+
178+ ** Notes:**
179+ - Mapbox maybe provide higher accuracy and better rate limits but requires an API token
180+ - Nominatim is free but has strict rate limits (1 request/second)
181+ - Both providers support intelligent caching to minimize API calls
182+ - Location data includes country, city, and location name extracted from GPS coordinates
183+
141184## 📋 CLI Commands
142185
143186### Build Commands
0 commit comments