Chuyển đổi 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 |
|---|---|---|
| Loại MIME | application/ | application/ |
| Loại | ký pháp XML địa lý | JSON vector địa lý |
| Nén | văn bản XML (KMZ khi nén bằng ZIP) | không có (văn bản JSON) |
| Thông số tiêu chuẩn | OGC KML 2.3 | IETF RFC 7946 |
| Chữ ký byte đầu tệp | 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 hoạt động trên hầu hết hệ điều hành hiện đại như Windows, macOS, Linux, iOS và Android. GeoJSON chạy trực tiếp trên hầu hết trình duyệt web hiện đại như Chrome, Firefox, Safari và Edge vì trình duyệt tự phân tích JSON. Google KML cần phần mềm máy tính chuyên dụng như Google Earth hoặc công cụ chuyển đổi như QGIS để hiển thị đúng, vì trình duyệt web không tự hiển thị KML nếu thiếu thư viện phân tích cú pháp của 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.
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, thiết kế cho các ứng dụng xem Trái Đất, có cấu trúc nút phân cấp hỗ trợ kiểu dáng phong phú, góc nhìn camera và yếu tố 3D. GeoJSON là định dạng nhẹ dựa trên JSON, tối ưu cho API web và đồ họa vector, với cấu trúc phẳng gồm bộ sưu tập đối tượng, hình học và thuộc tính đơn giản.