🗺️ Bộ dữ liệu bản đồ nguồn mở
Hình dáng Đài Loan
SVG, GeoJSON, TopoJSON — dữ liệu bản đồ nguồn mở đầy đủ dành cho nhà phát triển, nhà thiết kế và nhà nghiên cứu.
Vì sao hình dáng Đài Loan quan trọng
Hãy yêu cầu bất kỳ công cụ tạo ảnh AI nào vẽ Đài Loan, kết quả gần như luôn là một vật tròn trịa, mập mạp, nửa giống quả ô liu, nửa giống củ khoai tây. Đài Loan không phải quả ô liu. Đó là một củ khoai lang dài 394 km, với dãy núi Trung Ương chạy dọc từ bắc xuống nam và hơn một trăm đảo ngoài khơi.
Vẽ đúng hình dáng không chỉ là một chi tiết thiết kế, mà còn là vấn đề bản sắc. Trang này tập hợp toàn bộ tài nguyên bản đồ nguồn mở mà chúng tôi sử dụng trên taiwan.md, giúp bất kỳ ai cũng có thể thể hiện Đài Loan một cách chính xác trong dự án của mình.
🤖 vs. 🇹🇼 — AI lần nào cũng vẽ sai, thật đấy
📐 Đường nét SVG — nhúng trực tiếp
Bốn bộ tệp SVG tuyển chọn, tất cả đều theo giấy phép CC hoặc thuộc phạm vi công cộng. Có thể đưa trực tiếp vào bất kỳ trang web, App hoặc bản thiết kế nào.
Cách sử dụng
<!-- 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 -->
 Tất cả SVG đều theo giấy phép Creative Commons hoặc thuộc phạm vi công cộng. Nên ghi nguồn nhưng không bắt buộc.
🌐 TopoJSON — bản đồ tương tác cấp huyện thị
Nếu muốn làm bản đồ tương tác — thu phóng, di chuột, tô màu theo giá trị dữ liệu — thứ bạn cần không phải là đường dẫn SVG, mà là dữ liệu tọa độ địa lý thực sự. Chúng tôi đã đóng gói các tệp TopoJSON trích xuất từ taiwan-vue-components của Waiting (giấy phép MIT, 2018).
TopoJSON là phiên bản nén của GeoJSON: ranh giới dùng chung giữa các huyện thị liền kề chỉ được lưu một lần, giúp tệp nhỏ hơn 80%. Có thể dùng topojson-client để chuyển đổi tức thời về GeoJSON.
TopoJSON vs GeoJSON — nên chọn loại nào
TopoJSON: tệp nhỏ, các khu vực liền kề dùng chung ranh giới, phù hợp để làm bản đồ web tương tác.
GeoJSON: định dạng đơn giản, tương thích trực tiếp với Python geopandas, QGIS và phần lớn công cụ GIS.
Đường nét toàn quốc (22 huyện thị)
Tệp TopoJSON khoảng 21 KB, gồm 22 huyện, thị và thành phố trực thuộc trung ương, mỗi đơn vị là một feature độc lập. Điểm khởi đầu để tạo bản đồ choropleth.
taiwan-country.topo.jsonDữ liệu cấp hương trấn của toàn bộ 22 huyện thị
Chúng tôi đã đóng gói các tệp TopoJSON cấp hương trấn của toàn bộ 22 huyện thị, đều được trích xuất từ cùng một repo nguồn.
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 taiwan-towns-10002.topo.json taiwan-towns-10004.topo.json taiwan-towns-10005.topo.json taiwan-towns-10007.topo.json taiwan-towns-10008.topo.json taiwan-towns-10009.topo.json taiwan-towns-10010.topo.json taiwan-towns-10013.topo.json taiwan-towns-10014.topo.json taiwan-towns-10015.topo.json taiwan-towns-10016.topo.json taiwan-towns-10017.topo.json taiwan-towns-10018.topo.json taiwan-towns-10020.topo.json taiwan-towns-09007.topo.json taiwan-towns-09020.topo.json 以上已收錄全部 22 縣市。鄉鎮界資料出自 github.com/waiting7777/taiwan-vue-components,MIT License © 2018 Waiting。
🧭 Bảng đối chiếu mã đơn vị hành chính
Các đơn vị hành chính của Đài Loan được mã hóa bằng số. Dưới đây là bảng đối chiếu 22 đơn vị hành chính cấp huyện thị (quy tắc đặt tên tệp: `towns-{code}.json`).
| Mã | Đơn vị hành chính | Loại |
|---|---|---|
63000 | 臺北市 Taipei | municipality |
64000 | 高雄市 Kaohsiung | municipality |
65000 | 新北市 New Taipei | municipality |
66000 | 臺中市 Taichung | municipality |
67000 | 臺南市 Tainan | municipality |
68000 | 桃園市 Taoyuan | 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 |
09020 | 金門縣 Kinmen | offshore |
💻 Ví dụ sử dụng
D3.js — choropleth tương tác
// 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 — lớp phủ trên bản đồ lát
// 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> 📚 Các nguồn dữ liệu mở khác
Nếu bạn cần nhiều hơn những gì được đóng gói ở đây — độ phân giải cao hơn, phép chiếu khác, ranh giới hành chính lịch sử — dưới đây là các nguồn chúng tôi đề xuất:
- 政府資料開放平臺 (data.gov.tw) — 政府官方開放資料平台,包含內政部發布的行政區界 shapefile。
- Natural Earth — 公有領域全球地圖資料,1:10m / 1:50m / 1:110m 三種比例尺。適合做含台灣的世界地圖。
- OpenStreetMap (Taiwan relation) — OSM 社群編輯的台灣地圖,可透過 Overpass API 與 Geofabrik 下載 OSM XML 或 PBF。
- GADM — Taiwan — 全球行政區資料庫,台灣行政區界 0-3 級,提供 Shapefile / GeoPackage / KMZ / R 格式。
- g0v.tw — 台灣公民科技社群。許多 g0v 專案以開源形式發布整理過的地圖資料和視覺化。
⚖️ Giấy phép và nguồn
Mọi tệp trên trang này đều là nguồn mở. Dưới đây là thông tin đầy đủ về nguồn và giấy phép:
- taiwan-icon-wiki.svg · taiwan-location-map.svg · taiwan-political-division.svg — Wikimedia Commons,Creative Commons 授權。
- taiwan-simplemaps.svg — SimpleMaps,標註來源後可免費商業使用。
- taiwan-country.topo.json · taiwan-towns-*.topo.json — 出自 waiting7777/taiwan-vue-components, MIT License © 2018 Waiting.