PolygonInput

Form input for drawing a GeoJSON.Polygon. Renders a Geoman toolbar with the polygon and cut tools.

Installation

pnpm dlx shadcn@latest add @shadmin/polygon-input

Usage

import { PolygonInput } from "@/components/leaflet";
 
<Create>
  <SimpleForm>
    <PolygonInput
      source="geom"
      label="Service area"
      defaultCenter={[48.85, 2.35]}
    />
  </SimpleForm>
</Create>;

Props

PropRequiredTypeDefaultDescription
sourceRequiredstring-RHF field to write the geometry to.
allowSelfIntersectionOptionalboolean-Reserved (validator hook). Not enforced in v1.
minVerticesOptionalnumber-Reserved (validator hook). Not enforced in v1.
maxVerticesOptionalnumber-Reserved (validator hook). Not enforced in v1.
minArea_m2Optionalnumber-Reserved (validator hook). Not enforced in v1.
zoomOptionalnumber13Initial zoom level.
defaultCenterOptional[number, number][0, 0]Initial map center [lat, lng].
heightOptionalnumber | string300Height of the map container.
tileUrlOptionalstringOpenStreetMap tile URLTile layer URL template.
attributionOptionalstringOSM attributionTile attribution string.
pathOptionsOptionalL.PathOptions-Vector styling for the polygon.
snappableOptionalbooleantrueEnable Geoman snap-to-vertex.
snapDistanceOptionalnumber20Snap radius in pixels.
labelOptionalReactNode-Label rendered above the map.
helperTextOptionalReactNode-Helper text rendered below the map.
disabledOptionalbooleanfalseDisable editing.
validateOptional(v) => string | undefined-RHF-compatible validator(s).