GeoJSON (.geojson)

IETF Tiêu chuẩn

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ĩ độ.

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ọn hoặc thả tệp vào đây

Riêng tư - tệp không bao giờ rời khỏi thiết bị của bạn

Hoặc dán Ctrl+V
Cam kết bảo vệ quyền riêng tư, không truyền dữ liệu qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

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 65

BIỂ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 ContainerTài liệu JSON theo RFC 7946, biểu diễn các đối tượng Feature, FeatureCollection và Geometry địa lý
NénVăn bản không nén (dễ nén qua HTTP bằng Gzip hoặc Brotli)
Thứ tự byteLuồng văn bản UTF-8
Không gian màuKhông áp dụng (dữ liệu địa lý)
Kênh & Cấu trúcPoint, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection và thuộc tính tùy chỉnh
Kích thước tối đaKhông gian tọa độ WGS 84: kinh độ (-180 đến +180), vĩ độ (-90 đến +90)
Độ trong suốtKhông có
Truyền phát & Tăng dầnGeoJSON 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ậtGeoJSON (Hiện tại)KMLGPXSHP
Mức độ phổ biến trong ứng dụng bản đồ webMặc định phổ biến 100% trong GIS webMặc định của Google EarthMặc định thiết bị GPS & thể dụcTiê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ĩ độ, Độ caoVĩ độ, Kinh độTọa độ X, Y
Kiểu cú phápCặ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 đồ ExtendedDataThẻ lược đồ GPX cố địnhCộ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

2016IETF chính thức chuẩn hóa định dạng GeoJSON thành RFC 7946, bắt buộc sử dụng hệ quy chiếu tọa độ WGS 84.
2014GeoJSON 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ĩ độ.
2008Howard Butler, Sean Gillies và cộng đồng GIS mã nguồn mở công bố thông số kỹ thuật GeoJSON 1.0 ban đầu.

Ư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.