map layer management

This commit is contained in:
taDuc
2026-04-07 23:32:38 +07:00
parent 2a1b4f2f2a
commit 5ac5c4c0af
10 changed files with 514 additions and 45 deletions

View File

@@ -35,6 +35,7 @@ export function initDrawing(
features: [
{
type: "Feature",
properties: {},
geometry: {
type: "Polygon",
coordinates: [closed],
@@ -47,14 +48,17 @@ export function initDrawing(
function onClick(e: maplibregl.MapLayerMouseEvent) {
if (getMode() !== "draw") return;
coords.push([e.lngLat.lng, e.lngLat.lat]);
coords.push([e.lngLat.lng, e.lngLat.lat] as [number, number]);
update(coords);
}
function onMove(e: maplibregl.MapLayerMouseEvent) {
if (getMode() !== "draw" || coords.length === 0) return;
const preview = [...coords, [e.lngLat.lng, e.lngLat.lat]];
const preview: [number, number][] = [
...coords,
[e.lngLat.lng, e.lngLat.lat] as [number, number],
];
update(preview);
}
@@ -64,7 +68,7 @@ export function initDrawing(
function finishDrawing() {
if (getMode() !== "draw" || coords.length < 3) return;
const geometry = {
const geometry: Geometry = {
type: "Polygon",
coordinates: [closePolygon(coords)],
};
@@ -73,7 +77,7 @@ export function initDrawing(
coords = [];
map.getSource("draw-preview").setData({
(map.getSource("draw-preview") as maplibregl.GeoJSONSource | undefined)?.setData({
type: "FeatureCollection",
features: [],
});