GeocodingInput

Combobox-style address search input backed by Nominatim (or a custom provider). On selection, writes the display name to source and optionally writes latitude, longitude, and bbox to companion form fields.

Installation

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

Usage

import { GeocodingInput } from "@/components/leaflet";
 
<SimpleForm>
  <GeocodingInput
    source="address"
    latSource="lat"
    lngSource="lng"
    placeholder="Type an address…"
  />
</SimpleForm>;

Debounces user input (default 300 ms) and only queries after minChars characters (default 3). Honors Nominatim's polite 1 req/s rate limit.

Props

PropRequiredTypeDefaultDescription
sourceRequiredstring-RHF field name for the chosen address (display name).
latSourceOptionalstring-RHF field name to populate with result.lat.
lngSourceOptionalstring-RHF field name to populate with result.lng.
bboxSourceOptionalstring-RHF field name to populate with result.bbox when provided.
placeholderOptionalstring"Search address or place…"Combobox input placeholder.
labelOptionalstring-Label rendered above the combobox.
providerOptionalGeocodingProvidernominatimProviderCustom provider (search/reverse interface).
minCharsOptionalnumber3Minimum characters before querying.
debounceMsOptionalnumber300Debounce window in ms.
enabledOptionalbooleantrueReact Query enabled flag.
endpointOptionalstringNominatimProvider endpoint override.
countryCodesOptionalstring[]-Restrict results to ISO 3166-1 alpha-2 country codes.
viewBoxOptional[number, number, number, number]-Bias results to this bbox ([minLon, minLat, maxLon, maxLat]).
limitOptionalnumber10Max results per query.