Trình chuyển đổi Google KML sang GeoJSON
Việc chuyển đổi các tệp Google KML thành GeoJSON giúp biến đổi dữ liệu địa lý XML phân cấp thành định dạng vector JavaScript Object Notation gọn nhẹ phục vụ cho các bản đồ web hiện đại.
So sánh định dạng & Thông số kỹ thuật
| Thông số kỹ thuật | KML | GEOJSON |
|---|---|---|
| Kiểu MIME | application/vnd.google-earth.kml+xml | application/geo+json |
| Loại | geographic XML notation | geographic vector JSON |
| Nén | XML text (KMZ when ZIP compressed) | none (JSON text) |
| Thông số chuẩn | OGC KML 2.3 | IETF RFC 7946 |
| Phần đầu Magic Bytes | 3C 3F 78 6D 6C ... 3C 6B 6D 6C (<kml) | 7B 22 74 79 70 65 22 3A 20 22 ({"type": ") JSON header |
Tổng quan định dạng & Ứng dụng
Dữ liệu địa lý thường xuyên được luân chuyển giữa các công cụ bản đồ trên máy tính để bàn và các ứng dụng web. Google KML là định dạng tiêu chuẩn do Google Earth sử dụng, có cấu trúc gồm các điểm, đường thẳng và đa giác nằm trong một cây XML. Các trình duyệt web hiện đại cùng những thư viện bản đồ như Mapbox và Leaflet ưu tiên định dạng GeoJSON vì nó khớp trực tiếp với các cấu trúc dữ liệu nguyên bản của JavaScript. Các nhà phát triển và chuyên gia phân tích GIS thực hiện chuyển đổi KML sang GeoJSON nhằm tải các lớp phủ bản đồ lên trang web một cách nhanh chóng mà không cần đến phần mềm chuyên dụng trên máy tính. Các ứng dụng web xử lý dữ liệu JSON ngay lập tức so với việc phải phân tích cú pháp các tài liệu XML cồng kềnh. Khi người dùng tải một bản đồ web, tệp GeoJSON sẽ được cấp thẳng vào các công cụ kết xuất dạng vector. Quá trình chuyển đổi này loại bỏ hoàn hảo gánh nặng dịch các thẻ XML trong thời gian chạy. Nhờ vậy, bản đồ có thể hiển thị hàng nghìn đối tượng một cách mượt mà đồng thời bảo toàn độ chính xác tuyệt đối của tọa độ hình học.
Thông số kỹ thuật & Phân tích codec
Google KML sử dụng loại MIME application/vnd.google-earth.kml+xml và dựa trên cú pháp văn bản XML, hoặc một vùng chứa ZIP được gọi là KMZ khi nén lại. GeoJSON sử dụng loại MIME application/geo+json và bao gồm văn bản thuần túy không nén có cấu trúc như một đối tượng JSON. Các tệp KML thường bắt đầu bằng các byte khai báo XML tiêu chuẩn, trong khi các kho lưu trữ KMZ khởi đầu với các byte tiêu đề tệp cục bộ ZIP là 50 4B 03 04. Các tệp GeoJSON bắt đầu bằng ký tự ASCII '{' đại diện cho đối tượng JSON gốc. Quá trình chuyển đổi sẽ phân tích cú pháp cây tài liệu XML, trích xuất các mảng tọa độ cùng các thẻ siêu dữ liệu, sau đó ghi lại chúng thành các bộ sưu tập đối tượng JSON tuân thủ chuẩn RFC 7946 mà không làm suy giảm độ chính xác của tọa độ.
Khả năng tương thích hệ điều hành & trình duyệt
Cả hai định dạng đều hoạt động trên mọi hệ điều hành hiện đại bao gồm Windows, macOS, Linux, iOS và Android. GeoJSON chạy nguyên bản trong tất cả các trình duyệt web hiện đại như Chrome, Firefox, Safari và Edge bởi các trình duyệt tự phân tích cú pháp JSON mà không cần công cụ hỗ trợ. Google KML đòi hỏi phần mềm máy tính để bàn chuyên dụng như Google Earth hoặc các công cụ dịch thuật như QGIS để hiển thị chính xác, vì các trình duyệt web không thể tự hiển thị tệp KML nếu thiếu đi các thư viện phân tích cú pháp từ bên thứ ba.
💡 Thông tin hữu ích
Hãy luôn xác thực rằng tệp KML nguồn của bạn sử dụng hệ thống tọa độ địa lý WGS 84 trước khi tiến hành chuyển đổi sang GeoJSON nhằm phòng tránh các lỗi lệch vị trí không gian trên bản đồ web.
So sánh định dạng & Thông số kỹ thuật
Một tệp KML dung lượng 5 megabyte tiêu chuẩn sẽ chuyển đổi thành một tệp GeoJSON có kích thước khoảng 4.2 megabyte. Trên mạng di động 4G hoạt động ở tốc độ 30 megabit mỗi giây, việc tải xuống tệp này mất khoảng 1.1 giây. Trên mạng 5G tốc độ 150 megabit mỗi giây, quá trình truyền tải hoàn tất trong 0.2 giây. Với kết nối cáp quang Gigabit, tệp được truyền tải ngay lập tức trong chưa đầy 0.05 giây.
Câu hỏi thường gặp
Làm thế nào để chuyển đổi Google KML sang GeoJSON mà không làm giảm chất lượng?
Quá trình chuyển đổi hoàn toàn bảo toàn toán học đối với dữ liệu tọa độ. Cả hai định dạng đều lưu trữ tọa độ địa lý bằng hệ thống tham chiếu không gian WGS 84. Tuy nhiên, các quy tắc định dạng cụ thể trong KML như URL biểu tượng tùy chỉnh và chiều cao đùn đa giác phức tạp có thể không có điểm tương đương trực tiếp trong GeoJSON chuẩn và sẽ cần được tạo lại thủ công.
Sự khác biệt giữa Google KML và GeoJSON là gì?
Google KML là ngôn ngữ dựa trên XML được thiết kế cho các trình duyệt Trái Đất, có cấu trúc nút phân cấp hỗ trợ định dạng phong phú, góc nhìn camera và các yếu tố 3D. GeoJSON là một định dạng nhẹ được xây dựng trên nền tảng JSON, tối ưu hóa cho các API web và đồ họa vector với cấu trúc phẳng chứa các bộ sưu tập đối tượng, hình học cùng các thuộc tính đơn giản.