GeoJSON (.geojson)
IETF Tiêu chuẩnGeoJSON phổ biến trong bản đồ web nhưng mức hỗ trợ khác nhau. GitHub hiển thị tệp tương thích có giới hạn; RFC 7946 quy định kinh độ trước vĩ độ.
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ý ở đầu tệp (mẫu byte nhận diện)
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 | Tài liệu JSON theo RFC 7946, biểu diễn các đối tượng Feature, FeatureCollection và Geometry địa lý |
| Nén | Văn bản không nén (dễ nén qua HTTP bằng Gzip hoặc Brotli) |
| Thứ tự byte | Luồng văn bản UTF-8 |
| Không gian màu | Không áp dụng (dữ liệu địa lý) |
| Kênh & Cấu trúc | Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection và thuộc tính tùy chỉnh |
| Kích thước tối đa | Không gian tọa độ WGS 84: kinh độ (-180 đến +180), vĩ độ (-90 đến +90) |
| Độ trong suốt | Không có |
| Truyền phát & Tăng dần | GeoJSON phân tách theo dòng (GeoJSONL / GeoJSONSeq) cho phép truyền liên tục hàng triệu đối tượng |
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 |
|---|---|---|---|---|
| Mức độ phổ biến trong ứng dụng bản đồ web | Mặc định phổ biến 100% trong GIS web | 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>) | Định dạng nhị phân gồm nhiều 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 dạng hỏng thường gặp và hướng dẫn khôi phục bằng mã 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.app.
Phân tích bảo mật và các đường tấn công nhằm vào 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ú giải công cụ trên 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.
Biện pháp phòng thủ tốt nhất: Làm sạch tất cả các chuỗi văn bản thuộc tính bằng DOMPurify trước khi chèn vào cửa sổ bật lên bản đồ.
Nguồn gốc lịch sử và 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 độ').
- GeoJSON phổ biến trong bản đồ web nhưng mức hỗ trợ khác nhau. GitHub hiển thị tệp tương thích có giới hạn; RFC 7946 quy định kinh độ trước vĩ độ.
- 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 ngoài phải được định hướng ngược chiều 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 độ]?
GeoJSON phổ biến trong bản đồ web nhưng mức hỗ trợ khác nhau. GitHub hiển thị tệp tương thích có giới hạn; RFC 7946 quy định kinh độ trước vĩ độ.
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 vẫn được sử dụng rộng rãi để trao đổi dữ liệu và được phần mềm GIS hỗ trợ, nhưng cấu trúc gồm nhiều tệp và giới hạn thuộc tính có thể khiến GeoJSON hoặc cơ sở dữ liệu địa lý phù hợp hơn với một số quy trình.
Các cặp chuyển đổi GeoJSON liên quan
Chuyển đổi dữ liệu vectơ GeoJSON sang Google KML biến các mảng tọa độ JSON gọn nhẹ thành tài liệu XML có cấu trúc, phù hợp với 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ý.