A record describing each source name and the
FeatureCollection type it carries. When omitted, every source defaults to
FeatureCollection.
Optionalimages?: Record<string, CustomGeoJSONImageSpec>Custom images to register on the map by ID. The module adds each image during
setup, before any source or layer is created, and re-adds every image after every
style change — so symbol layers referencing an image via icon-image: '<id>'
survive setStyle calls automatically.
map.hasImage(id) is already true.applyConfig re-runs image registration additively: new IDs are added,
already-present IDs are skipped, and removing an entry from images does
not unregister it from the map (other layers may still reference it).The sources, keyed by an arbitrary user-defined name, that this module manages.
Optionalvisible?: booleanInitial visibility for all layers across all sources. Defaults to true.
After show(name, data) is called for a source, layer visibility follows the
data state (visible iff the feature collection is non-empty). Use
CustomGeoJSONModule.setVisible to override that automatic behaviour at
runtime.
type MySources = {
buildings: FeatureCollection<Point, { name: string }>;
parks: FeatureCollection<Polygon>;
};
const config: CustomGeoJSONModuleConfig<MySources> = {
sources: {
buildings: { layers: [{ type: 'circle', paint: { 'circle-radius': 4 } }] },
parks: { layers: [{ type: 'fill', paint: { 'fill-color': '#5a5' } }] },
},
};
Configuration for the CustomGeoJSONModule.