Ethiopia Geo Boundaries is a simple repository that provides structured geographic boundary data of Ethiopia. It contains administrative divisions in a clean, machine-readable format, making it useful for mapping, GIS applications, and data analysis projects.
# ethiopia-geo-boundaries
> Fully offline administrative boundary data for Ethiopia.
> **Zero network calls · Works forever · Vue 3 / Nuxt 3 ready**
> Features: Interactive drill-down (Region -> Zone -> Woreda), highly accessible, and handles contested borders cleanly.
### 🌍 Region Level
### 📍 Zone Level
### 🏠 Woreda Level
### 🏠 Zone Level As a whole
## Install
```bash
npm install ethiopia-geo-boundaries d3
```
---
## Live Demo & Example App
**Live Demo:** map-et.vercel.app
**Example App Repo:** HabtamuTesafaye/map_et
---
## What's included
| File | Contents |
|------|----------|
| `data/eth-adm0.json` | Country outline GeoJSON |
| `data/eth-adm1.json` | 14 regions GeoJSON (Natural Earth, public domain) with Contested area correctly mapped |
| `data/hierarchy.json` | 14 regions + zones with PCodes, names, Amharic, capitals, populations |
| `vue/EthiopiaMap.vue` | Vue 3 / Nuxt 3 choropleth map component |
| `scripts/convert-hdx.js` | Convert HDX COD-AB shapefile → zone/woreda GeoJSON |
> **ADM2/ADM3 geometry**: Zone and woreda polygons require the HDX COD-AB shapefile (manual download from humdata.org). Run `node scripts/convert-hdx.js` after placing the shapefile in `./input/`.
---
## Usage
### Install
```bash
npm install ethiopia-geo-boundaries d3
```
### SVG Paths (ADM1–ADM3)
Import pre-built SVG path strings keyed by P-code:
```ts
import { adm1Paths, adm1PathsNames } from 'ethiopia-geo-boundaries/adm1'
import {
adm2Paths, adm2PathsParents, adm2PathsNames,
} from 'ethiopia-geo-boundaries/adm2'
import {
adm3Paths, adm3PathsParents, adm3PathsNames,
} from 'ethiopia-geo-boundaries/adm3'
```
- `adm1Paths` / `adm2Paths` / `adm3Paths` — `Record ` of P-code → SVG `d` attribute
- `adm1PathsNames` / `adm2PathsNames` / `adm3PathsNames` — `Record ` of P-code → human-readable name
- `adm2PathsParents` / `adm3PathsParents` — `Record ` of child P-code → parent name
### Render SVG string
```ts
import { renderEthiopiaMap } from 'ethiopia-geo-boundari …