This should provide instructions for configuring the tile layer in your Map component, including both component properties and environment variables. --- # **Component Properties** We can configure a tile layer for the Map component by passing the following properties: ### **tileLayerName** A list of pre-defined out-of-the-box tile layer providers. (MapBox, OpenStreetMap, Esri, etc...). See options [here](https://leaflet-extras.github.io/leaflet-providers/preview/index.html). ```typescript tileLayerName: 'MapBox' | 'OpenStreetMap' | 'custom' | ... ``` ### **tileLayerOptions** Additional options for the specified tile provider. ```typescript tileLayerOptions: { id?: string; accessToken?: string; minZoom?: number; maxZoom?: number; maxNativeZoom?: number; minNativeZoom?: number; subdomains?: string | string[]; errorTileUrl?: string; zoomOffset?: number; tms?: boolean; zoomReverse?: boolean; detectRetina?: boolean; crossOrigin?: CrossOrigin | boolean; referrerPolicy?: ReferrerPolicy | boolean; } ``` Some of the properties, such as accessToken, might be required for some of the providers. All available options and documentation can be found [here](https://leafletjs.com/reference#tilelayer). --- # **Environment Variables** Given that most projects using `@portajs` are built with Next.js, we can also configure the tile layer using `.env` variables with the prefix: **NEXT_PUBLIC_MAP_TILE_LAYER_Name**=MapBox **NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_**{option}. ```env NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_url=https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken} NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_id= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_accessToken= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_minZoom= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_maxZoom= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_maxNativeZoom= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_minNativeZoom= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_subdomains= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_errorTileUrl= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_zoomOffset= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_tms= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_zoomReverse= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_detectRetina= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_crossOrigin= NEXT_PUBLIC_MAP_TILE_LAYER_OPTION_referrerPolicy= ``` --- # **.env Variables vs Component Properties Priority** **The options passed through the component's properties will prevail over those defined in `.env`.**