This repo hosts South Korea administrative division geodata in open formats that can be used to build static and interactive maps (e.g. with D3), and was inspired by swiss-maps.
To see maps for Seoul, go to https://github.com/southkorea/seoul-maps
The following formats are available:
shp
,
kml/kmz
,
svg
,
GeoJSON
,
TopoJSON
,
and RData
.
Data is acquired from the following sources:
South Korean administrative divisions are consisted of three levels:
The following data are available.
Numbers are data sizes in Megabytes in the following order: Country border, Provinces, Municipalities, Submunicipalities.
Numbers in parentheses are simplified versions of each format.
Format Source | KOSTAT (2013) | GADM | POPONG | Wikimedia |
---|---|---|---|---|
ESRI Shapefile | 0, 9.6, 19, 46 | 5.5, 5.5, 5.8, 0 | 0 | 0 |
KML/KMZ | 0, 0.16, 0.452, 2.8 | 1.5, 1.5, 1.7, 0 | 0 | 0 |
SVG | 0 | 0 | 0, 0.014, 0, 0 | 0, 0, 0.100, 0 |
GeoJSON | 0, 31, 52, 0 (0, 0.148, 0.364, 1.7) |
15, 15, 16, 0 | 0 | 0 |
TopoJSON | 0, 1.2, 2.0, 4.9 (0, 0.032, 0.0.96, 0.812) |
1.5, 1.5, 1.6, 0 | 0 | 0 |
RData | 0 | 1.0, 1.0, 1.2, 0 | 0 | 0 |
brew install gdal
npm install -g topojson
Download Shapefiles
Projection files are provided here. Otherwise, copy the snippet below and save to a separate prj
file having the same name as the shp
file.
PROJCS["Bessel_1841_Transverse_Mercator",GEOGCS["GCS_Bessel_1841",DATUM["D_Bessel_1841",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",127.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0]]
Downloaded dates
Download and install QGIS. With QGIS for each shapefile:
Change layer encoding to EUC-KR
Save as
, with CRS and data encoding as shown in the image below.
Convert shp
to GeoJSON, TopoJSON
ogr2ogr -f geojson [geojson_file] [shp_file]
topojson -p -o [topojson_file] [geojson_file]
Simplify GeoJSON
s with http://mapshaper.org/ (with Visvalingam / weighted area, 1% simplification)
Convert simplifies GeoJSON
s to KML
ogr2ogr -f kml [simplified_geojson_file] [kml_file]
To download data files, run:
make get_gadm
Created from shapefiles with ogr2ogr -f geojson [filename]-geo.json [filename].shp
.
Created from GeoJSON files with topojson [filename]-geo.json -o [filename]-topo.json --properties
.
To download file, run:
wget http://upload.wikimedia.org/wikipedia/commons/7/77/Administrative_divisions_map_of_South_Korea.svg
Get a precinct raw table file (국회의원지역선거구구역표) and store it as text file like popong/precinct/precianct_table_20.txt
.
The next step is to create a mapping from each municipality/submunicipality in the table to a code in the kostat map file.
cd popong/precinct
python create_mapping_precinct_to_map.py
mismatch_case_precinct_map.py
file before you run the create_mapping_precinct_to_map.py
file.We can now create a precinct map by merging submunicipalities into precincts using mapshaper or similar tools.
mapshaper merge_ready_submunicipalities_into_precinct_20.json -dissolve precinct_no copy-fields=precinct_name,province -o assembly-precinct-20-geo.json
create_mapping_precinct_to_map.py
file. topojson -p --simplify-proportion 0.4 -o submunicipalities-topo-simplified.json submunicipalities-topo.json