Chuyển đổi VN-2000 ↔ WGS84 API
Đổi tọa độ VN-2000 x, y (tọa độ trên sổ đỏ) sang vĩ độ, kinh độ WGS84, UTM và ngược lại, theo kinh tuyến trục của tỉnh, kèm diện tích thửa và GeoJSON.
Chuyển tọa độ giữa hệ quốc gia VN-2000 và WGS84: tọa độ phẳng x (bắc), y (đông) theo múi chiếu 3° của tỉnh (k0 = 0,9999, hệ in trên giấy chứng nhận quyền sử dụng đất) hoặc múi 6° UTM, vĩ độ / kinh độ VN-2000, vĩ độ / kinh độ WGS84 (GPS, Google Maps) và UTM WGS84. Phép chuyển datum dùng 7 tham số chính thức của TT 973/2001/TT-TCĐC và QĐ 05/2007/QĐ-BTNMT (EPSG:6960); phép chiếu dùng chuỗi Krüger, chính xác đến milimét.
Gửi province (một trong 63 tỉnh cũ hoặc 34 tỉnh hiện nay) để dùng kinh tuyến trục theo TT 973/2001; với tỉnh đã sáp nhập, kết quả cảnh báo khi các tỉnh cũ có kinh tuyến khác nhau, vì hồ sơ địa chính giữ kinh tuyến của tỉnh cũ. Hoặc gửi trực tiếp meridian (105.75 hoặc 105°45').
Khi có từ 3 điểm trở lên, diện tích và chu vi thửa được tính trên mặt phẳng chiếu như bản đồ địa chính. format=geojson trả đa giác GeoJSON để mở trên Google Maps hoặc QGIS. Sai số giữa hai hệ khoảng 1 m: dùng cho bản đồ, không thay cho đo đạc pháp lý.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
points | body|query | array | có | Danh sách điểm: mảng [x, y] hoặc [vĩ độ, kinh độ], hoặc mỗi dòng một cặp (như trên sổ đỏ). Một điểm: x + y hoặc lat + lon. | |
from | body|query | string | không | vn2000 | vn2000 (tọa độ phẳng x, y), vn2000_geo, wgs84, utm, vn2000_utm. |
to | body|query | string | không | wgs84 | Hệ đích (cùng các giá trị). |
province | body|query | string | không | Tỉnh để lấy kinh tuyến trục (tên 63 tỉnh cũ hoặc 34 tỉnh mới). | |
meridian | body|query | string | không | Kinh tuyến trục, ví dụ 105.75 hoặc 105°45'. | |
zone_width | body|query | number | không | 3 | 3 (k0 0,9999) hoặc 6 (k0 0,9996). |
format | body|query | string | không | json | json hoặc geojson. |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/vn-vn2000" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"points":[[1192000,600000],[1192000,600020],[1191980,600020],[1191980,600000]],"province":"Hồ Chí Minh"}'const res = await fetch('https://apibox.io.vn/v1/vn-vn2000', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"points": [
[
1192000,
600000
],
[
1192000,
600020
],
[
1191980,
600020
],
[
1191980,
600000
]
],
"province": "Hồ Chí Minh"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/vn-vn2000",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"points": [[1192000, 600000], [1192000, 600020], [1191980, 600020], [1191980, 600000]], "province": "Hồ Chí Minh"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/vn-vn2000');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"points":[[1192000,600000],[1192000,600020],[1191980,600020],[1191980,600000]],"province":"Hồ Chí Minh"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"from": "vn2000",
"to": "wgs84",
"meridian": "105°45'",
"meridian_deg": 105.75,
"zone_width": 3,
"k0": 0.9999,
"province": {
"former_province": "Hồ Chí Minh",
"province_since_2025": "Hồ Chí Minh",
"meridian": "105°45'",
"meridian_deg": 105.75,
"warning": "Since 1/7/2025 Hồ Chí Minh also includes Bình Dương (105°45'), Bà Rịa - Vũng Tàu (107°45'); cadastral records keep the meridian of the former province where the parcel lies."
},
"count": 4,
"points": [
{
"wgs84": {
"lat": 10.77752619,
"lon": 106.66618296
},
"vn2000_geo": {
"lat": 10.77854448,
"lon": 106.66439662
},
"vn2000": {
"x": 1192000,
"y": 600000
},
"result": {
"lat": 10.77752619,
"lon": 106.66618296
}
},
{
"wgs84": {
"lat": 10.77752565,
"lon": 106.66636582
},
"vn2000_geo": {
"lat": 10.77854394,
"lon": 106.66457948
},
"vn2000": {
"x": 1192000,
"y": 600020
},
"result": {
"lat": 10.77752565,
"lon": 106.66636582
}
}
],
"polygon": {
"area_m2": 400,
"perimeter_m": 80,
"plane": "VN-2000 TM 3°, meridian 105°45', k0 0.9999"
},
"legal": {
"system": "VN-2000, QĐ 83/2000/QĐ-TTg",
"projection": "TT 973/2001/TT-TCĐC (k0 0.9999 for 3° zones, 0.9996 for 6°)",
"transform": "7 parameters of TT 973/2001 / QĐ 05/2007/QĐ-BTNMT (EPSG:6960, coordinate frame)"
},
"accuracy": "About 1 m between VN-2000 and WGS84 (national 7-parameter set; local parameter sets of a province can be more accurate). Not a substitute for a licensed survey in cadastral dossiers."
}
Ứng dụng
- Hiện thửa đất trên sổ đỏ lên Google Maps
- Nhập thửa đo đạc vào GIS hoặc app bất động sản
- Kiểm tra diện tích ghi trên giấy chứng nhận
- Đổi điểm GPS sang VN-2000 cho bản vẽ đo đạc
Hỏi đáp
x và y theo thứ tự nào?
VN-2000 ghi x = tọa độ bắc (khoảng 1–2,6 triệu m) trước, y = tọa độ đông (khoảng 400–700 nghìn m). Cặp bị đảo được tự phát hiện và sửa kèm cảnh báo.
Dùng kinh tuyến trục nào?
Kinh tuyến của tỉnh có thửa đất (TT 973/2001); với tỉnh đã sáp nhập dùng tỉnh cũ. Giấy chứng nhận thường ghi sẵn (ví dụ KTT 105°45', múi chiếu 3°).
Độ chính xác thế nào?
Phép chiếu chính xác đến milimét; phép chuyển datum 7 tham số quốc gia sai số khoảng 1 m (đã đối chiếu các cặp tọa độ VN-2000 / WGS84 công bố trong TT 47/2025/TT-BXD).
API liên quan
Kiểm tra JSON
Kiểm tra cú pháp JSON, báo đúng dòng và cột bị lỗi, và validate dữ liệu theo JSON Schema (draft 4, 7, 2019-09 hoặc 2020-12).
{ }Định dạng JSON
Làm đẹp JSON với thụt lề 0-8 dấu cách hoặc tab, rút gọn (minify) hoặc sắp xếp key theo bảng chữ cái. Báo lỗi cú pháp kèm dòng và cột.
CSVCSV sang JSON
Chuyển CSV thành mảng object JSON theo dòng tiêu đề, tự nhận dấu phân cách, tự chuyển số và boolean, báo lỗi từng dòng.