• Stars
    star
    266
  • Rank 154,103 (Top 4 %)
  • Language
    TypeScript
  • License
    GNU General Publi...
  • Created about 5 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bộ dữ liệu các đơn vị hành chính Việt Nam (3 cấp)

Các đơn vị hành chính Việt Nam

Dữ liệu được cập nhật từ trang Danh mục hành chính của Tổng cục thống kê và Hệ thống bản đồ hành chính của Cổng thông tin điện tử Chính phủ.

Các tập dữ liệu

dvhcvn.json

Thông tin 3 cấp đơn vị hành chính trả về từ web service của TCTK:

  • Tỉnh thành:
    • level1_id
    • name
    • type: Thành phố Trung ương | Tỉnh
    • level2s
  • Quận huyện
    • level2_id
    • name
    • type: Quận | Huyện | Thành phố | Thị xã
    • level3s
  • Phường xã
    • level3_id
    • name
    • type: Phường | Xã | Thị trấn

Ví dụ:

{
  "level1_id": "56",
  "name": "Tỉnh Khánh Hòa",
  "type": "Tỉnh",
  "level2s": [
    {
      "level2_id": "568",
      "name": "Thành phố Nha Trang",
      "type": "Thành phố",
      "level3s": [
        {
          "level3_id": "22363",
          "name": "Phường Lộc Thọ",
          "type": "Phường"
        },
        "..."
      ]
    },
    "..."
  ]

gis/*.json

Thông tin địa giới trích xuất từ Hệ thống bản đồ hành chính cho 2 cấp: tỉnh thành và quận huyện.

<level1_id>.json

Do nhiều dữ liệu nên mỗi tỉnh thành được tách ra một tập riêng. Trong đó, mỗi đơn vị hành chính (tỉnh thành hoặc quận huyện) có các thông tin:

  • coordinates
  • bbox
  • type: MultiPolygon | Polygon

Ví dụ tập dữ liệu của Khánh Hoà, có nội dung như sau:

{
  "level1_id": "56",
  "name": "Tỉnh Khánh Hòa",
  "level2s": [
    {
      "level2_id": "568",
      "name": "Thành phố Nha Trang",
      "coordinates": [
        [
          [[109.317273127, 12.1642742720001], "... (khoảng 30 cặp toạ độ)"],
          "... (khoảng 10 đa giác)"
        ]
      ],
      "bbox": [109.110859607, 12.141705888, 109.370714452, 12.3798137530001],
      "type": "MultiPolygon"
    },
    "..."
  ],
  "coordinates": ["... (khoảng 50 đa giác)"],
  "bbox": [108.669676534, 7.89146445900019, 115.836420367, 12.86823071],
  "type": "MultiPolygon"
}

level1s_bbox.json

Riêng dữ liệu bbox của tỉnh thành được lưu riêng với nội dung như sau:

{
  "01": [
    105.28500419,
    20.5642508770001,
    106.020154616,
    21.3855144820001
  ],
  "..."
}

sorted.json

Thông tin 3 cấp đơn vị hành chính đã được sắp xếp theo tên riêng. Để tiết kiệm dung lượng, mỗi đơn vị hành chính là một mảng có các thành phần theo thứ tự như sau:

  1. Mã đơn vị
  2. Tên riêng
  3. Tiền tố
  4. Tên riêng không dấu
  5. Các đơn vị trực thuộc

Ví dụ:

[
  [
    "89", "An Giang", "Tỉnh", "An Giang",
    [
      [
        "886", "An Phú", "Huyện", "An Phu",
        [
          ["30337", "An Phú", "Thị trấn", "An Phu"],
          ["30373", "Đa Phước", "", "Da Phuoc"],
          ["30340", "Khánh An", "", "Khanh An"],
          "..."
        ]
      ],
      "..."
    ]
  ],
  "..."
]

Thư viện hỗ trợ

Demo

  • geolocation: xác định dvhc từ kinh độ, vĩ độ
  • map: hiển thị dvhc trên bản đồ Goong.io
  • parser: xác định dvhc từ địa chỉ (xem parser API bên dưới)
  • parser API:
    • Cách 1: curl https://dvhcvn.vercel.app/demo/parser/api -d input=hanoi -> chỉ trả về tên các dvhc "Thành phố Hà Nội"
    • Cách 2: curl https://dvhcvn.vercel.app/demo/parser/api -H 'Content-Type: text/plain' -d hanoi -> trả về thông tin chi tiết
    • Ví dụ: curl https://dvhcvn.vercel.app/demo/parser/api -H 'Content-Type: text/plain' -d 'trung tu, dong da, ha noi' trả về [{"id":"00226","name":"Trung Tự","type":"Phường"},{"id":"006","name":"Đống Đa","type":"Quận"},{"id":"01","name":"Hà Nội","type":"Thành phố"}]

Nhưng... tại sao?!

Bộ dữ liệu này được tạo ra vì các dự án tương tự trên mạng Internet cung cấp thông tin không đầy đủ hoặc không được cập nhật thường xuyên. Để tránh việc tương tự xảy ra với dự án này, một daily cron sẽ đối chiếu ngày hiệu lực của nghị định mới nhất và ngày cập nhật dữ liệu để cảnh báo qua Telegram group.

Tự tải về

Nếu vì lý do nào đó bạn không muốn dùng dữ liệu có sẵn tại đây và muốn tự tải về trực tiếp từ nguồn, thực hiện các câu lệnh như sau:

git clone https://github.com/daohoangson/dvhcvn.git
cd dvhcvn

# xoá dữ liệu có sẵn
rm -rf ./data/*

# bắt đầu tải
./downloader/download.sh

# chạy các đoạn mã chuyển đổi
./transformers/transform-all.sh

Nguồn tham khảo

More Repositories

1

flutter_widget_from_html

Flutter package to render html as widgets that supports hyperlink, image, audio, video, iframe and many other tags.
Dart
631
star
2

flutter-tinhte_demo

Tinh tế mobile apps built with Flutter for evaluation purposes.
Dart
28
star
3

go-sitemirror

Website mirror app with priority for response consistency.
Go
19
star
4

bubby

Telegram bot powered by OpenAI
TypeScript
18
star
5

flutter-covid19

Flutter UI Challenge: Worldwide Covid-19 visualization
Dart
12
star
6

no-clickjacking

JavaScript
9
star
7

flutter-stockfish

Dart
6
star
8

ios-swift-uisplitviewcontroller-ios8

UISplitViewController that works with both iOS 7 and iOS 8
Swift
4
star
9

DTUI_201105

DTUI project, UET, VNU
PHP
4
star
10

flutter-moneybook

Dart
4
star
11

english2playwright

Use LLM to convert requirement in plain english to Playwright script
TypeScript
4
star
12

mudim

JavaScript
3
star
13

android_uinput

C
3
star
14

flutter-vnd_keyboard

Dart
3
star
15

bigbaddomains

Big Bad Domains
Shell
3
star
16

flutter-festival-2022

Implementing maps in Flutter app.
Dart
3
star
17

go-deferred

Go
2
star
18

android-ydls

Kotlin
2
star
19

comment-on-github

An Action to comment on the relevant GitHub PR / comment on push.
TypeScript
2
star
20

flutter-arb_editor

Dart
2
star
21

flutter-k8s2go

Kubernetes cluster management for the on-the-go admins
Dart
2
star
22

flutter-blogspot_reader

Blogspot Reader app built with Flutter and Firebase, supports push notification
Dart
2
star
23

docker-acme.sh

Lightweight acme.sh container (Alpine+acme.sh)
Shell
2
star
24

calculator

Dart
2
star
25

cf-email2slack

CloudFlare worker to handle incoming email and post to Slack
JavaScript
1
star
26

flutter-codelab20210605

Dart
1
star
27

koluto-demo-crawler

Python
1
star
28

bdPhotos

PHP
1
star
29

google-io-extended-2022

https://docs.google.com/presentation/d/1YPVtX7C_IucvJ8JcKvfQYVdutKvo4A3vJxtXRLcrxJU/
Dart
1
star
30

js-tinhte-api

Tinh tế API authentication for React apps
JavaScript
1
star
31

dart-tinhte_api

Dart
1
star
32

javauml7

Automatically exported from code.google.com/p/javauml7
Java
1
star
33

flutter-amplify_push_notification

Unofficial package to receive push notification with Amplify & AWS PinPoint
Dart
1
star
34

docker-rclone

Lightweight rclone container (Alpine+Rclone)
Shell
1
star
35

d3js-glow-baby-charts

Baby charts using data from Glow Baby app
TypeScript
1
star
36

building_beautiful_app_with_flutter

Building a beautiful app with Flutter
Dart
1
star
37

chaocovietnam-ios

Chao co Viet Nam (iOS version, universal app)
C
1
star
38

ffmpeg_sdl

FFmpeg and SDL for as many platforms as possible!
C
1
star
39

flutter-progressive_jpeg

This is a PoC to show how to download and display a progressive JPEG image in Flutter.
Dart
1
star
40

flutter-fgcart

Dart
1
star
41

flutter-snapfinance

Dart
1
star
42

flutter-vnpay

Dart
1
star
43

chiec-non-ki-dieu

Chiếc nón kì diệu phiên bản 2004 viết bằng Pascal
Pascal
1
star