🗺️ Открытый набор картографических данных
Форма Тайваня
SVG, GeoJSON, TopoJSON — полный открытый набор картографических данных для разработчиков, дизайнеров и исследователей.
Почему форма Тайваня важна
Попробуйте заставить любой инструмент для генерации изображений нарисовать Тайвань, и почти всегда получится круглый, толстый объект, похожий на оливообразный картофель. Тайвань — не оливка. Это сладкий картофель длиной 394 км с Центральным хребтом, протянувшимся с севера на юг, и более чем сотней отдалённых островов.
Правильное изображение формы — это не просто дизайнерская деталь, это вопрос идентичности. На этой странице собраны все открытые картографические материалы, которые мы используем на taiwan.md, чтобы любой мог точно отобразить Тайвань в своём проекте.
🤖 vs. 🇹🇼 — ИИ ошибается снова и снова, и это правда
📐 Контур SVG — прямое встраивание
Четыре отобранных SVG-файла, все под лицензией CC или в общественном достоянии. Можно напрямую вставлять в любой веб-сайт, приложение или дизайн-макет.
Способ использования
<!-- 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 -->
 Все SVG-файлы распространяются под лицензией Creative Commons или находятся в общественном достоянии. Указание источника желательно, но не обязательно.
🌐 TopoJSON — интерактивная карта на уровне уездов
Если вы создаёте интерактивную карту с масштабированием, всплывающими подсказками при наведении курсора и заливкой по значениям данных — вам нужны не SVG-пути, а настоящие географические координаты. Мы упаковали файлы TopoJSON, извлечённые из проекта Waiting's taiwan-vue-components (лицензия MIT, 2018).
TopoJSON — это сжатая версия GeoJSON: общие границы соседних уездов сохраняются только один раз, что уменьшает размер файла на 80%. С помощью topojson-client можно мгновенно преобразовать обратно в GeoJSON.
TopoJSON против GeoJSON — что выбрать
TopoJSON: меньший размер файла, общие границы для соседних регионов, подходит для интерактивных веб-карт.
GeoJSON: простой формат, прямая совместимость с Python geopandas, QGIS и большинством инструментов ГИС.
Контур страны (22 уезда)
Файл TopoJSON объёмом около 21 КБ, содержащий 22 уезда и города прямого подчинения, каждый из которых является отдельным объектом (feature). Точка отсчёта для создания хлороплетных карт.
taiwan-country.topo.jsonДанные по всем 22 уездам на уровне волостей
Мы упаковали файлы TopoJSON на уровне волостей для всех 22 уездов, извлечённые из одного и того же репозитория.
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。
🧭 Таблица соответствия кодов административных районов
Административные районы Тайваня кодируются цифровыми кодами. Ниже приведена таблица соответствия для 22 уездов (правило именования файлов: `towns-{code}.json`).
| Код | Административный район | Тип |
|---|---|---|
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 |
💻 Примеры использования
D3.js — интерактивная хлороплетная карта
// 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 — наложение на тайловую карту
// 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> 📚 Другие источники открытых данных
Если вам нужно больше, чем упаковано здесь — более высокое разрешение, другие проекции, исторические границы административных районов — вот рекомендуемые нами источники:
- 政府資料開放平臺 (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 專案以開源形式發布整理過的地圖資料和視覺化。
⚖️ Лицензия и источники
Каждый файл на этой странице является открытым. Ниже приведена полная информация об источниках и лицензиях:
- 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.