All files / app/features/search guides.ts

0% Statements 0/12
0% Branches 0/1
0% Functions 0/1
0% Lines 0/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45                                                                                         
import {
  AnyLayer,
  AnySourceData,
  EventData,
  Map as MaplibreMap,
  MapLayerEventType,
} from "maplibre-gl";
 
const URL = process.env.NEXT_PUBLIC_API_BASE_URL;
 
export const sources: Record<string, AnySourceData> = {
  guides: {
    data: URL + "/geojson/guides",
    type: "geojson",
  },
};
 
export const layers: Record<string, AnyLayer> = {
  guideLayer: {
    id: "guide-points",
    paint: {
      "circle-color": "#8511d9",
      "circle-radius": 8,
      "circle-stroke-color": "#fff",
      "circle-stroke-width": 1,
    },
    source: "guides",
    type: "circle",
  },
};
 
export const addGuidesToMap = (
  map: MaplibreMap,
  guideClickedCallback?: (ev: MapLayerEventType["click"] & EventData) => void
) => {
  map.addSource("guides", sources["guides"]);
  map.addLayer(layers["guideLayer"]);
 
  Iif (guideClickedCallback) {
    map.on("click", layers["guideLayer"].id, guideClickedCallback);
  }
};
 
export default addGuidesToMap;