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 Trên đã bao gồm đầy đủ 22 huyện và thành phố. Dữ liệu ranh giới xã, thị trấn trích từ 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) — Nền tảng dữ liệu mở chính thức của chính phủ, bao gồm Shapefile ranh giới hành chính do Bộ Nội vụ phát hành.
- Natural Earth — Dữ liệu bản đồ toàn cầu thuộc phạm vi công cộng, với ba tỷ lệ 1:10m / 1:50m / 1:110m. Phù hợp để tạo bản đồ thế giới có Đài Loan.
- OpenStreetMap (Taiwan relation) — Bản đồ Đài Loan do cộng đồng OSM biên tập, tải về dưới dạng OSM XML hoặc PBF qua Overpass API và Geofabrik.
- GADM — Taiwan — Cơ sở dữ liệu khu vực hành chính toàn cầu, ranh giới hành chính Đài Loan cấp 0-3, cung cấp định dạng Shapefile / GeoPackage / KMZ / R.
- g0v.tw — Cộng đồng công nghệ dân sự Đài Loan. Nhiều dự án g0v công bố dữ liệu bản đồ đã được làm sạch và các trực quan hóa dưới dạng nguồn mở.
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, giấy phép Creative Commons.
- taiwan-simplemaps.svg — SimpleMaps, sử dụng miễn phí cho mục đích thương mại khi ghi rõ nguồn.
- taiwan-country.topo.json · taiwan-towns-*.topo.json — Trích từ waiting7777/taiwan-vue-components, MIT License © 2018 Waiting.