Skip to content

Metadata of Thailand Province name (ข้อมูลจังหวัด อำเภอ ตำบล ของประเทศไทย)

License

Notifications You must be signed in to change notification settings

kongvut/thai-province-data

Repository files navigation

Thai Province Data

GitHub stars GitHub forks License: MIT

ชุดข้อมูล จังหวัด (Province), อำเภอ (District), ตำบล (Sub-district) ของประเทศไทย
รองรับหลายรูปแบบ (CSV, JSON, SQL, XLSX, XML) และมี API JSON ให้เรียกใช้งานได้ทันที

📌 ตั้งแต่ v2 มีการเปลี่ยนโครงสร้างและการตั้งชื่อ ดูรายละเอียดที่ CHANGELOG.md


📚 Table of Contents


📂 โครงสร้างโปรเจกต์

├── api
│   ├── latest
│   │   ├── district.json
│   │   ├── province_with_district_and_sub_district.json
│   │   ├── province.json
│   │   ├── sub_district_with_district_and_province.json
│   │   └── sub_district.json
│   └── v1
│       ├── amphure.json
│       ├── province_with_amphure_tambon.json
│       ├── province.json
│       └── tambon.json
├── data
│   ├── raw/        # ข้อมูลต้นฉบับ
│   └── spec/       # JSON Schema สำหรับ validate
├── docs            # diagram, schema, readme
├── formats         # export ไฟล์ csv/json/sql/xlsx/xml
├── scripts         # pipeline สคริปต์ (validate, export, api)
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
└── README.md

Highlights v2

  • amphuredistrict, tambonsub_district
  • ลบ prefix thai_ ในชื่อ dataset
  • เพิ่ม spec schema ใน data/spec/*.json
  • pipeline รันง่ายด้วย scripts/make.py

🧾 รูปแบบข้อมูลและสคีมา

  • geography.jsonid, name
  • province.jsonid, name_th, name_en, geography_id, timestamps
  • district.jsonid, name_th, name_en, province_id, timestamps
  • sub_district.jsonid, zip_code, name_th, name_en, district_id, lat, long, timestamps

ข้อมูลต้นทางอยู่ใน data/raw/*.json → export ได้หลายไฟล์ใน formats/*


🔌 ไฟล์ API พร้อมใช้งาน

API endpoints ใช้ไฟล์ใน api/latest สามารถเรียกใช้งานตรงจาก GitHub Raw:

  • province.json

    https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province.json
    
  • district.json

    https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/district.json
    
  • sub_district.json

    https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/sub_district.json
    
  • province_with_district_and_sub_district.json

    https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province_with_district_and_sub_district.json
    
  • sub_district_with_district_and_province.json

    https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/sub_district_with_district_and_province.json
    

ตัวอย่าง Raw URL

# ดูจังหวัดแรก ๆ
curl -s https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province.json | jq '.[0:3]'

Fetch data demo by React

ตัวอย่างการใช้งาน API api/latest/province_with_district_and_sub_district.json เพื่อสร้าง DropdownList

https://codesandbox.io/p/sandbox/thailand-province-demo-api-k3st7

🗂 ประเภทไฟล์อื่น ๆ


💻 การใช้งานด้วยโค้ด

Python

import requests

url = "https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/province.json"
provinces = requests.get(url).json()

print(provinces[0])
# {'id': 1, 'name_th': 'กรุงเทพมหานคร', 'name_en': 'Bangkok', 'geography_id': 2, ...}

Node.js

import fetch from "node-fetch";

const url = "https://raw.githubusercontent.com/kongvut/thai-province-data/refs/heads/master/api/latest/district.json";
const res = await fetch(url);
const districts = await res.json();

console.log(districts[0]);
// { id: 1001, name_th: 'เขตพระนคร', name_en: 'Khet Phra Nakhon', province_id: 1, ... }

🧪 สคริปต์ & Automation

  • scripts/0_validate_data.py → validate schema + FK + format
  • scripts/1_export_file_format.py --overwrite → export CSV/JSON/SQL/XLSX/XML
  • scripts/2_export_api.py --overwrite → build API JSON
  • scripts/make.py → pipeline รวมทุกขั้นตอน

อ่านรายละเอียดเพิ่มเติม scripts/readme.md


🧭 Diagram

ดูแผนภาพ ERD ที่ docs/diagram.md ตัวอย่าง Mermaid:

erDiagram
  GEOGRAPHIES ||--o{ PROVINCES : "1..*"
  PROVINCES   ||--o{ DISTRICTS : "1..*"
  DISTRICTS   ||--o{ SUB_DISTRICTS : "1..*"
Loading

🤝 Contributing

  • ยินดีรับ PR ทั้งแก้ไขข้อมูล เพิ่ม dataset ปรับ docs หรือเพิ่ม export format
  • โปรดอ่าน CONTRIBUTING.md ก่อนส่ง PR

📃 Documentation

Documentation เอกสารประกอบสำหรับการใช้งานและการพัฒนาโปรเจกต์ thai-province-data docs/readme.md


📜 Changelogs

โปรเจกต์นี้มีการอัปเดตและปรับปรุงอย่างต่อเนื่อง
สามารถติดตามรายละเอียดการเปลี่ยนแปลงทั้งหมดได้ที่ CHANGELOG.md

For more details, please see the CHANGELOG.md


📄 License

MIT License © 2025 Kongvut Sangkla

About

Metadata of Thailand Province name (ข้อมูลจังหวัด อำเภอ ตำบล ของประเทศไทย)

Resources

License

Contributing

Stars

Watchers

Forks