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

Chuyển đổi 100% riêng tư trong trình duyệ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 mật không truyền tải 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ý 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 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 ContainerJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
NénUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Thứ tự byte EndiannessUTF-8 text stream
Không gian màuN/A (Geographic Data)
Kênh & Cấu trúcPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Kích thước tối đaWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
Độ trong suốtNone
Truyền phát & Tăng dầnLine-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ậtGeoJSON (Hiện tại)KMLGPXSHP
Khả năng áp dụng bản đồ webMặc định GIS web phổ quát 100%Mặ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>)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 đồ ExtendedDataThẻ lược đồ GPX cố địnhCộ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

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.
2014GitHub giới thiệu tính năng kết xuất bản đồ trực quan tương tác gốc cho tất cả các tệp .geojson.
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 độ').
  • 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.