UNPKG

leaflet.maskhalo

Version:

A Leaflet plugin for creating halo effects around GeoJSON features with masking capabilities

77 lines (73 loc) 1.97 kB
import * as L from 'leaflet'; import { FeatureCollection, Feature } from 'geojson'; declare global { interface Window { L?: typeof L; } namespace L { type HaloData = FeatureCollection<GeoJSON.Polygon | GeoJSON.MultiPolygon> | Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon> | Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon>[] | GeoJSON.Polygon | GeoJSON.MultiPolygon | GeoJSON.Polygon[] | GeoJSON.MultiPolygon[]; interface MaskHaloOptions { mask?: L.PathOptions; halo?: L.PathOptions; } class MaskHalo extends L.FeatureGroup { constructor(data: HaloData, options?: L.MaskHaloOptions); setHalo(data: HaloData): MaskHalo; } interface Map { maskHalo(data: HaloData, options?: MaskHaloOptions): MaskHalo; } function maskHalo(data: HaloData, options?: MaskHaloOptions): MaskHalo; } } /** * Leaflet MaskHalo * @class * @param {L.Map} map - Leaflet map instance * @param {Object} options - Leaflet MaskHalo options * * @example * * ``` * import L from "leaflet"; * import "leaflet.maskhalo"; * * const maskHalo = L.maskHalo(data, { mask: { fillColor: "#000", fillOpacity: 0.4, }, halo: { color: "#165DFF", weight: 3, }, }); * * maskHalo.addTo(map); * * // 清除 * maskHalo.clearLayers() * // 移除当前的 * maskHalo.remove() * ``` */ declare class MaskHalo extends L.FeatureGroup { private _options; private _halo; private _mask; constructor(data: L.HaloData, options?: L.MaskHaloOptions); /** * Add halo to the map * * @param data GeoJSON data * */ _createLayers(data: L.HaloData): void; /** * Remove the mask layer. * */ setHalo(data: L.HaloData): this; } declare function maskHalo(data: L.HaloData, options?: L.MaskHaloOptions): L.MaskHalo; export { MaskHalo, maskHalo };