How It Works
Use to update any map overlay property. Only include fields you want to change — existing fields are preserved. IMPORTANT: Use place NAMES instead of coordinates. The backend auto-resolves names to real coords via PostGIS (5M+ cities, 4.4K regions, 236 countries). E.g., set cityName:"Tokyo" instead of guessing coordinates; set waypoints:[{label:"London"},{label:"Paris"}] and the backend resolves.
SHARED PROPS (all map skins): Tile & colors: tileStyle (liberty|bright|positron|dark_matter|satellite|topo|watercolor|terrain), strokeColor (#hex), fillColor (#hex), highlightColor (#hex for markers/pins), strokeWidth (1-20, default 6). Camera motion: cameraCombo (smooth-zoom|dramatic-drop|bounce-land|slow-rotate|quarter-orbit|full-orbit|tilt-reveal|crane-down|cinematic-swoop|flyover|satellite-descent|epic-reveal). Easing: easing (easeOutExpo|spring|easeOutBack|easeOutElastic|easeOutBounce|easeInOutCubic|linear|steps). Default: easeOutExpo. Effects: vignette (bool), vignetteAmount (0-1), grain (bool), grainAmount (0-1), bloom (bool), bloomAmount (0-1). General: opacity (0-1), pinIcon (dot|pulse|modern-pin|pin|plus|x-mark|flag|anchor|skull|summit|camp|trail). Points: points (array of {label, coord, icon, type, elevation, value, isoA2}) — unified array for all skins. Data: markers (array of {coord:[lng,lat], icon, label, color}), routes (array of {from:[lng,lat], to:[lng,lat], curved, width, color}), borders ({show:bool, color:#hex, width:number}), fills ({countries:string[], color:#hex, opacity:0-1}), focus ({type:"country"|"region"|"city", code/name, coord}), latitude (number), longitude (number), boundingBox ([minLng,minLat,maxLng,maxLat]).
SKIN-SPECIFIC PROPS: satellite-zoom: atmosphereColor (#hex, glow gradient), coordinateHud (bool, lat/lng display), pinLabel (string, pin text). route-tracker: waypoints (array of {coord:[lng,lat], label, icon:string}), routeColor (#hex), vehicleIcon (car|plane|boat|motorcycle|train), showDistanceCounter (bool). tactical: targets (array of {coord:[lng,lat], designation:string, type:primary|secondary|threat, threatRadiusKm:number}), colorScheme (green-phosphor|amber-phosphor|blue-intel|red-alert), headerText (string), classifiedWatermark (bool), showGrid (bool). vintage-explorer: landmarks (array of {coord:[lng,lat], label, icon:x-mark|antique-pin|flag|anchor|skull}), routeCoords (array of [lng,lat]), titleText (string), sepiaTint (0-1), showCompass (bool). news-broadcast: brandColor (#hex), headline (string), subtitle (string), dataItems (string[]), calloutLabel (string). neon-city: neonColor (#hex), secondaryNeon (#hex), locations (array of {coord:[lng,lat], label}), showParticles (bool), showHud (bool). topographic: waypoints (array of {coord:[lng,lat], label, elevation:number, icon:summit|camp|water-source|viewpoint|trailhead|hut}), trailCoords (array of [lng,lat]), elevationData (number[]), showElevationChart (bool), showStats (bool), totalDistanceKm (number), elevationGainM (number). flight-path: flights (array of {from:[lng,lat], to:[lng,lat], fromLabel, toLabel, distanceKm}), networkMode (bool), arcColor (#hex), planeIcon (commercial-jet|private-jet|cargo-plane|plane), infoCard ({route:string, distance:string, flightTime:string}). data-choropleth: regions (array of {isoA2:string, name, value:number}), colorScale (sequential-blue|sequential-green|sequential-red|red-green|diverging), legendTitle (string), legendMin (string), legendMax (string), unit (string), showBubbles (bool), bubbles (array of {coord:[lng,lat], value:number, label}), timeSeries (array of {label:string, values:{isoA2:number,...}} — animated time steps), timeSeriesSpeed (number 0.5-3.0). cinematic-split: videoUrl (string, video URL for split pane), syncPoints (array of {coord:[lng,lat], videoTimestamp:number, label}), splitRatio (0-1), splitDirection (vertical|horizontal|diagonal), dividerColor (#hex).
Example: props_patch: {strokeColor: "#ff0000", zoomFrom: 2, zoomTo: 4, vignette: true, vignetteAmount: 0.6} Example (tactical): props_patch: {colorScheme: "red-alert", headerText: "OPERATION EAGLE", showGrid: false} Example (flight-path): props_patch: {arcColor: "#00ffff", planeIcon: "private-jet", networkMode: true}