GeoJSON (.geojson)
IETF Tiêu chuẩnĐịnh dạng Ký hiệu Đối tượng JavaScript Địa lý (GeoJSON) là tiêu chuẩn phổ quát, nguyên bản trên nền tảng web để mã hóa các cấu trúc dữ liệu địa lý, được sử dụng rộng rãi trong các ứng dụng bản đồ web hiện đại (Leaflet, Mapbox, OpenLayers) và các ứng dụng GIS.
Chuyển đổi GEOJSON sang KML
Trình chuyển đổi từ GEOJSON sang KML miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.
Kiểm tra & Siêu dữ liệu
Các hệ điều hành và trình phân tích tệp nhận dạng tệp GeoJSON bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:
Chữ ký tiêu đề ở cấp độ Byte (Magic Bytes)
Các hệ điều hành và trình phân tích tệp nhận dạng tệp GeoJSON bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:
CHỮ KÝ HEX (OFFSET 0):
7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65BIỂU DIỄN ASCII: {\n "type": "Feature
Tiêu chuẩn hóa: IETF RFC 7946
Thông số kỹ thuật
| Kiến trúc Container | JSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries |
| Nén | Uncompressed text (readily compressed over HTTP via Gzip or Brotli) |
| Thứ tự byte Endianness | UTF-8 text stream |
| Không gian màu | N/A (Geographic Data) |
| Kênh & Cấu trúc | Points, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties |
| Kích thước tối đa | World Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90) |
| Độ trong suốt | None |
| Truyền phát & Tăng dần | Line-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features |
Ma trận so sánh kỹ thuật: GeoJSON so với các đối thủ
| Thuộc tính kỹ thuật | GeoJSON (Hiện tại) | KML | GPX | SHP |
|---|---|---|---|---|
| Khả năng áp dụng bản đồ web | Mặc định GIS web phổ quát 100% | Mặc định của Google Earth | Mặc định thiết bị GPS & thể dục | Tiêu chuẩn kế thừa GIS trên máy tính để bàn |
| Thứ tự tọa độ | [Kinh độ, Vĩ độ] (X, Y) | Kinh độ, Vĩ độ, Độ cao | Vĩ độ, Kinh độ | Tọa độ X, Y |
| Kiểu cú pháp | Cặp khóa-giá trị JSON sạch sẽ | Thẻ XML dài dòng (<kml>) | Thẻ XML dài dòng (<gpx>) | Tệp nhị phân đa tệp (.shp, .shx, .dbf) |
| Lược đồ thuộc tính | Đối tượng thuộc tính JSON tùy ý | Thẻ lược đồ ExtendedData | Thẻ lược đồ GPX cố định | Cột cố định dBase IV (.dbf) |
Các chế độ hỏng hóc phổ biến & Hướng dẫn khôi phục Hex
Các điểm trên bản đồ xuất hiện ở đại dương gần Nam Cực thay vì vị trí thực tế của chúng.
Nguyên nhân gốc rễ: Các giá trị Vĩ độ và Kinh độ vô tình bị hoán đổi trong mảng tọa độ.
Khắc phục: Hoán đổi vị trí tọa độ [kinh độ, vĩ độ] bằng Trình chuyển đổi GeoJSON của File2File.
Phân tích bảo mật & Các vectơ tấn công bộ phân tích cú pháp
Các thuộc tính GeoJSON có thể chứa dữ liệu đầu vào tùy ý của người dùng, phải được làm sạch trước khi kết xuất vào cửa sổ bật lên trên bản đồ để ngăn chặn XSS.
Các Véc-tơ Tấn công Đã biết
- Tấn công kịch bản chéo trang (XSS) thông qua HTML không được thoát trong các thuộc tính tính năng GeoJSON được kết xuất trong chú thích công cụ bản đồ.
- Từ chối dịch vụ thông qua các GeometryCollection lồng nhau sâu hoặc các đa giác có hàng triệu đỉnh.
- Giả mạo yêu cầu phía máy chủ thông qua việc tải tính năng GeoJSON từ xa.
Thực tiễn Tốt nhất về Phòng thủ:
Nguồn gốc lịch sử & Các cột mốc
Ưu điểm & Lợi ích chính
- Tiêu chuẩn web nguyên bản: ánh xạ trực tiếp vào các đối tượng JavaScript trong các thư viện bản đồ trình duyệt (Mapbox GL JS, Leaflet).
- Cấu trúc JSON dễ đọc đối với con người cho phép tạo, lọc và gỡ lỗi theo chương trình một cách dễ dàng.
- Lược đồ thuộc tính tùy ý: gắn bất kỳ siêu dữ liệu tùy chỉnh nào (dân số, tên, tốc độ, doanh thu) trực tiếp vào các hình dạng hình học.
Hạn chế & Nhược điểm kỹ thuật
- Tính dài dòng của văn bản: lưu trữ tọa độ dấu phẩy động dưới dạng các chữ số ASCII lặp lại, dẫn đến kích thước tệp lớn hơn so với Shapefile nhị phân hoặc FlatGeobuf.
- RFC 7946 quy định nghiêm ngặt thứ tự [Kinh độ, Vĩ độ], điều này thường xuyên gây nhầm lẫn cho các nhà phát triển quen với 'Vĩ độ/Kinh độ'.
- Các đa giác lớn có hàng triệu đỉnh có thể gây ra hiện tượng chậm kết xuất DOM trên trình duyệt web.
Thông tin kỹ thuật thú vị
- Tiêu chuẩn GeoJSON chính thức sắp xếp tọa độ theo thứ tự [Kinh độ, Vĩ độ] (thứ tự tọa độ Descartes X, Y), trái ngược hoàn toàn với cách nói của con người ('Vĩ độ, Kinh độ').
- Nếu bạn commit một tệp .geojson lên GitHub, GitHub sẽ tự động hiển thị tệp đó thành một bản đồ tương tác, có thể nhấp vào.
- RFC 7946 yêu cầu các vòng ranh giới của đa giác phải tuân theo 'quy tắc bàn tay phải': các vòng bên ngoài phải được quấn theo chiều ngược kim đồng hồ.
Các câu hỏi kỹ thuật thường gặp
Tại sao các tọa độ GeoJSON của tôi lại được sắp xếp theo thứ tự [kinh độ, vĩ độ] thay vì [vĩ độ, kinh độ]?
Bởi vì trong toán học và đồ họa máy tính, tọa độ luôn được chỉ định là (X, Y). Kinh độ đại diện cho trục X nằm ngang và Vĩ độ đại diện cho trục Y thẳng đứng.
Làm cách nào để chuyển đổi KML hoặc Shapefile sang GeoJSON?
Bạn có thể chuyển đổi tệp Google Earth KML hoặc Esri Shapefile thành GeoJSON sạch, sẵn sàng cho web trong vòng vài giây bằng cách sử dụng File2File.app trực tiếp trên trình duyệt.
Sự khác biệt giữa GeoJSON và Shapefile là gì?
Shapefile là định dạng nhị phân đa tệp lỗi thời từ những năm 1990 (.shp, .shx, .dbf). GeoJSON là định dạng web mở hiện đại, tệp đơn được viết bằng JSON sạch.
Các cặp chuyển đổi GeoJSON liên quan
Chuyển đổi các vectơ GeoJSON thành Google KML dịch các mảng tọa độ JSON nhẹ thành các tài liệu XML có cấu trúc được thiết kế riêng cho Google Earth và Google Maps.
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.
Chuyển đổi dữ liệu vector GeoJSON sang GPX giúp biến các đối tượng JSON địa lý tiêu chuẩn thành định dạng dựa trên XML được tối ưu hóa cho các thiết bị định vị vật lý.