@abez/tajikistan-map
v0.1.1
Published
Customizable, accessible SVG map of Tajikistan for React -- regions and districts, built-in metadata, choropleth, tooltips, and drill-down. Zero runtime dependencies.
Maintainers
Readme
@abez/tajikistan-map
A customizable, accessible SVG map of Tajikistan for React — 5 top-level regions and 59 districts, geometry from geoBoundaries, choropleth, drill-down, and 3-locale built-in metadata (tg/ru/en).
Built on @abez/map-core,
the shared engine also powering @abez/kazakhstan-map
and @abez/uzb-map.
TypeScript-first. Zero runtime dependencies.
Install
npm install @abez/tajikistan-mapReact 17+ is a peer dependency; nothing else is required at runtime.
Quick start
import { TajikistanMap } from '@abez/tajikistan-map'
export function App() {
return <TajikistanMap locale="en" onRegionClick={(code) => console.log(code)} />
}Choropleth
<TajikistanMap data={{ 'TJ-SU': 98, 'TJ-KT': 95, 'TJ-GB': 30 }} />Keys are region codes ("TJ-SU") or, in view="districts", district codes.
Drill-down
const [focusRegion, setFocusRegion] = useState<string>()
<TajikistanMap
focusRegion={focusRegion}
onRegionClick={(code) => setFocusRegion(code)}
onDistrictClick={(code) => console.log('district', code)}
/>Custom markers
import { TajikistanMap, useProjectPoint, useMapScale } from '@abez/tajikistan-map'
function CapitalMarker() {
const project = useProjectPoint()
const scale = useMapScale()
const [x, y] = project([68.7864, 38.5598]) // Dushanbe
return <circle cx={x} cy={y} r={4 / scale} fill="red" />
}
<TajikistanMap>
<CapitalMarker />
</TajikistanMap>Locales & metadata
import { getRegionMeta, getDistrictsByRegion } from '@abez/tajikistan-map'
getRegionMeta('TJ-SU') // { code, names: {tg,ru,en}, capital, population, populationYear, areaKm2, ... }
getDistrictsByRegion('TJ-SU')District-level population/areaKm2 are best-effort — 47 of 59 districts
have both confirmed (verified: true), a notably higher completeness rate
than this monorepo's other country packages. See DATA_SOURCES.md for
exactly what's confirmed vs. estimated, the note on Tajikistan's
non-uniform administrative structure (Districts of Republican Subordination
has no capital of its own), and the Dushanbe geometry-synthesis note.
Data & attribution
Geometry derived from geoBoundaries TJK
ADM1/ADM2 (Runfola et al. 2020, ODbL). See DATA_SOURCES.md for full
attribution, the administrative-structure verification, and the Dushanbe
synthesis note.
