Открытый набор картографических данных

Форма Тайваня

SVG, GeoJSON, TopoJSON — полный открытый набор картографических данных для разработчиков, дизайнеров и исследователей.

Почему форма Тайваня важна

Попробуйте заставить любой инструмент для генерации изображений нарисовать Тайвань, и почти всегда получится круглый, толстый объект, похожий на оливообразный картофель. Тайвань — не оливка. Это сладкий картофель длиной 394 км с Центральным хребтом, протянувшимся с севера на юг, и более чем сотней отдалённых островов.

Правильное изображение формы — это не просто дизайнерская деталь, это вопрос идентичности. На этой странице собраны все открытые картографические материалы, которые мы используем на taiwan.md, чтобы любой мог точно отобразить Тайвань в своём проекте.

vs. 🇹🇼 — ИИ ошибается снова и снова, и это правда

AI-generated Taiwan shape (wrong)
Сгенерировано ИИ (неверно)
Correct Taiwan shape from Wikipedia
Правильная версия (Википедия)

Контур SVG — прямое встраивание

Четыре отобранных SVG-файла, все под лицензией CC или в общественном достоянии. Можно напрямую вставлять в любой веб-сайт, приложение или дизайн-макет.

Taiwan icon — Wikipedia

taiwan-icon.svg

Простой залитый контур — подходит для иконок, фавиконов и кнопок.

Wikimedia Commons · CC

Скачать SVG
Taiwan outline — SimpleMaps

taiwan-simplemaps.svg

Чистый вектор — подходит для встраивания в веб.

SimpleMaps · 5 KB

Скачать SVG
Taiwan location map with city markers

taiwan-location-map.svg

Карта расположения с сеткой широты/долготы и метками городов.

Wikimedia Commons · CC

Скачать SVG
Taiwan political division map with counties

taiwan-political-division.svg

Границы уездов — административное деление в цвете.

Wikimedia Commons · CC

Скачать SVG

Способ использования

<!-- 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 -->
![Taiwan](https://taiwan.md/assets/svg/taiwan-icon-wiki.svg)

Все SVG-файлы распространяются под лицензией Creative Commons или находятся в общественном достоянии. Указание источника желательно, но не обязательно.

TopoJSON — интерактивная карта на уровне уездов

Если вы создаёте интерактивную карту с масштабированием, всплывающими подсказками при наведении курсора и заливкой по значениям данных — вам нужны не SVG-пути, а настоящие географические координаты. Мы упаковали файлы TopoJSON, извлечённые из проекта Waiting's taiwan-vue-components (лицензия MIT, 2018).

TopoJSON — это сжатая версия GeoJSON: общие границы соседних уездов сохраняются только один раз, что уменьшает размер файла на 80%. С помощью topojson-client можно мгновенно преобразовать обратно в GeoJSON.

TopoJSON против GeoJSON — что выбрать

TopoJSON

TopoJSON: меньший размер файла, общие границы для соседних регионов, подходит для интерактивных веб-карт.

GeoJSON

GeoJSON: простой формат, прямая совместимость с Python geopandas, QGIS и большинством инструментов ГИС.

Контур страны (22 уезда)

Файл TopoJSON объёмом около 21 КБ, содержащий 22 уезда и города прямого подчинения, каждый из которых является отдельным объектом (feature). Точка отсчёта для создания хлороплетных карт.

taiwan-country.topo.json
TopoJSON · 22 features · ~21 KB
Скачать TopoJSON

Данные по всем 22 уездам на уровне волостей

Мы упаковали файлы TopoJSON на уровне волостей для всех 22 уездов, извлечённые из одного и того же репозитория.

taiwan-towns-63000.topo.json
臺北市 Taipei · 23 KB
Скачать TopoJSON
taiwan-towns-64000.topo.json
高雄市 Kaohsiung · 69 KB
Скачать TopoJSON
taiwan-towns-65000.topo.json
新北市 New Taipei · 24 KB
Скачать TopoJSON
taiwan-towns-66000.topo.json
臺中市 Taichung · 21 KB
Скачать TopoJSON
taiwan-towns-67000.topo.json
臺南市 Tainan · 27 KB
Скачать TopoJSON
taiwan-towns-68000.topo.json
桃園市 Taoyuan · 13 KB
Скачать TopoJSON
taiwan-towns-10002.topo.json
宜蘭縣 Yilan · 8 KB
Скачать TopoJSON
taiwan-towns-10004.topo.json
新竹縣 Hsinchu · 7 KB
Скачать TopoJSON
taiwan-towns-10005.topo.json
苗栗縣 Miaoli · 8 KB
Скачать TopoJSON
taiwan-towns-10007.topo.json
彰化縣 Changhua · 9 KB
Скачать TopoJSON
taiwan-towns-10008.topo.json
南投縣 Nantou · 10 KB
Скачать TopoJSON
taiwan-towns-10009.topo.json
雲林縣 Yunlin · 12 KB
Скачать TopoJSON
taiwan-towns-10010.topo.json
嘉義縣 Chiayi · 12 KB
Скачать TopoJSON
taiwan-towns-10013.topo.json
屏東縣 Pingtung · 14 KB
Скачать TopoJSON
taiwan-towns-10014.topo.json
臺東縣 Taitung · 11 KB
Скачать TopoJSON
taiwan-towns-10015.topo.json
花蓮縣 Hualien · 10 KB
Скачать TopoJSON
taiwan-towns-10016.topo.json
澎湖縣 Penghu · 4 KB
Скачать TopoJSON
taiwan-towns-10017.topo.json
基隆市 Keelung · 2 KB
Скачать TopoJSON
taiwan-towns-10018.topo.json
新竹市 Hsinchu City · 1 KB
Скачать TopoJSON
taiwan-towns-10020.topo.json
嘉義市 Chiayi City · 1 KB
Скачать TopoJSON
taiwan-towns-09007.topo.json
連江縣 Lienchiang (Matsu) · 2 KB
Скачать TopoJSON
taiwan-towns-09020.topo.json
金門縣 Kinmen · 3 KB
Скачать TopoJSON

Выше приведены все 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; доступна для загрузки в формате OSM XML или PBF через Overpass API и Geofabrik.
  • 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.