🗺️ Open Cartographic Archive
Taiwan's Shape
SVG, GeoJSON, TopoJSON — a complete open-source map dataset for developers, designers, and researchers.
Why the shape of Taiwan matters
Ask any AI image generator to draw Taiwan and watch what happens. It usually spits out a fat, rounded blob somewhere between an olive and a potato. Taiwan is not an olive. It's a 394-kilometer-long sweet potato with a central mountain range and more than 100 offshore islands.
Getting the shape right is not just a design nit — it's an identity problem. This page collects all the open-source assets we use on taiwan.md so anyone can render Taiwan accurately in their own project.
🤖 vs. 🇹🇼 — AI gets this wrong. Always.
📐 SVG outlines — instant drop-in
Four hand-picked SVG files, all CC / public domain. Drop directly into any website, app, or design file.
Usage examples
<!-- HTML -->
<img src="https://taiwan.md/assets/svg/taiwan-icon-wiki.svg" alt="Taiwan" width="200">
/* CSS */
background-image: url('https://taiwan.md/assets/svg/taiwan-icon-wiki.svg');
<!-- Markdown -->
 All SVGs are under Creative Commons or public domain. Attribution appreciated but not required.
🌐 TopoJSON — interactive maps at county level
For interactive maps — zoom, hover, fill by data value — you need real geographic coordinates, not just SVG paths. We bundle TopoJSON files extracted from Waiting's taiwan-vue-components (MIT License, 2018).
TopoJSON is GeoJSON compressed: shared borders between counties are stored only once, making files 80% smaller. It can be converted to GeoJSON on the fly with topojson-client.
TopoJSON vs GeoJSON — which one?
TopoJSON: smaller file size, shared topology between adjacent regions, the right choice for web maps.
GeoJSON: simpler format, direct compatibility with Python geopandas, QGIS, and most GIS tools.
Country-level outline (22 counties)
~21 KB TopoJSON file with all 22 counties and special municipalities as separate features. Perfect for choropleth maps.
taiwan-country.topo.jsonTownship-level (6 special municipalities)
We bundle the 6 special municipalities' township-level files. For the other 16 counties, see the source repository on GitHub.
taiwan-towns-63000.topo.json taiwan-towns-64000.topo.json taiwan-towns-65000.topo.json taiwan-towns-66000.topo.json taiwan-towns-67000.topo.json taiwan-towns-68000.topo.json For the full 22-county set of township files, see github.com/waiting7777/taiwan-vue-components.
🧭 Administrative division codes
Taiwan's administrative divisions use numeric codes. Here's the reference table for all 22 county-level divisions (file naming follows `towns-{code}.json`).
| Code | Division | Type |
|---|---|---|
63000 | 臺北市 Taipei | Special Municipality |
64000 | 高雄市 Kaohsiung | Special Municipality |
65000 | 新北市 New Taipei | Special Municipality |
66000 | 臺中市 Taichung | Special Municipality |
67000 | 臺南市 Tainan | Special Municipality |
68000 | 桃園市 Taoyuan | Special Municipality |
10002 | 宜蘭縣 Yilan | County |
10004 | 新竹縣 Hsinchu | County |
10005 | 苗栗縣 Miaoli | County |
10007 | 彰化縣 Changhua | County |
10008 | 南投縣 Nantou | County |
10009 | 雲林縣 Yunlin | County |
10010 | 嘉義縣 Chiayi | County |
10013 | 屏東縣 Pingtung | County |
10014 | 臺東縣 Taitung | County |
10015 | 花蓮縣 Hualien | County |
10016 | 澎湖縣 Penghu | County |
10017 | 基隆市 Keelung | City |
10018 | 新竹市 Hsinchu City | City |
10020 | 嘉義市 Chiayi City | City |
09007 | 連江縣 Lienchiang (Matsu) | Offshore County |
09020 | 金門縣 Kinmen | Offshore County |
💻 Usage examples
D3.js — interactive choropleth
// D3.js v7 + topojson-client
import * as d3 from 'd3';
import * as topojson from 'topojson-client';
const topo = await d3.json('https://taiwan.md/assets/geo/taiwan-country.topo.json');
const counties = topojson.feature(topo, topo.objects.map);
const projection = d3.geoMercator()
.center([121, 24])
.scale(8000)
.translate([400, 300]);
const path = d3.geoPath().projection(projection);
d3.select('svg')
.selectAll('path')
.data(counties.features)
.join('path')
.attr('d', path)
.attr('fill', d => colorScale(d.properties.value))
.attr('stroke', '#333'); Python — geopandas
# Python — convert TopoJSON to GeoDataFrame
import json, geopandas as gpd
from topojson import Topology
with open('taiwan-country.topo.json') as f:
topo = json.load(f)
# Convert to GeoJSON
topology = Topology(topo)
gdf = gpd.GeoDataFrame.from_features(
topology.to_geojson()['features']
)
gdf.plot(column='name', legend=True) Leaflet — tile-based map overlay
// Leaflet + topojson
import L from 'leaflet';
import * as topojson from 'topojson-client';
const map = L.map('map').setView([24, 121], 7);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
fetch('https://taiwan.md/assets/geo/taiwan-country.topo.json')
.then(r => r.json())
.then(topo => {
const geojson = topojson.feature(topo, topo.objects.map);
L.geoJSON(geojson, {
style: { color: '#4a90e2', weight: 1, fillOpacity: 0.3 }
}).addTo(map);
}); Vue — taiwan-vue-components
// Vue 2 — taiwan-vue-components (original source)
npm install taiwan-vue-components
// In your Vue component
import { Country, Taipei, Kaohsiung } from 'taiwan-vue-components';
<template>
<div>
<Country :width="400" :height="600" fill="#f0f0f0" stroke="#333" />
<Taipei :width="300" :height="300" />
</div>
</template> 📚 Other open data sources
If you need more than what's bundled here — higher resolution, different projections, historical administrative boundaries — these are the sources we recommend:
- 政府資料開放平臺 (data.gov.tw) — Official Taiwan government open data, including administrative boundary shapefiles from the Ministry of the Interior.
- Natural Earth — Public domain global map data at 1:10m, 1:50m, and 1:110m scales. Great for small-scale world maps that include Taiwan.
- OpenStreetMap (Taiwan relation) — OSM's community-edited map of Taiwan, downloadable as OSM XML or PBF via Overpass API and Geofabrik.
- GADM — Taiwan — Global Administrative Areas database, Taiwan administrative boundaries at levels 0-3 in Shapefile, GeoPackage, KMZ, and R formats.
- g0v.tw — Taiwan's civic tech community. Many g0v projects publish cleaned-up map data and visualizations as open source.
⚖️ License & attribution
Every file on this page is open source. Here are the exact origins and licenses:
- taiwan-icon-wiki.svg · taiwan-location-map.svg · taiwan-political-division.svg — Wikimedia Commons, Creative Commons.
- taiwan-simplemaps.svg — SimpleMaps, free for personal and commercial use with attribution.
- taiwan-country.topo.json · taiwan-towns-*.topo.json — Extracted from waiting7777/taiwan-vue-components, MIT License © 2018 Waiting.