GeoJSON
是一种用于表示地理信息的开放标准格式,广泛用于存储和交换地理空间数据。它基于 JSON 格式,因此易于理解和处理,尤其适用于 Web 和 JavaScript 环境中的地图应用。GeoJSON 支持多种地理信息类型,如点、线、面、坐标系统等。
GeoJSON 文件本质上是一个 JSON 对象,通常包含以下几个主要部分:
Feature
)的数组,每个地理特征都有其几何形状和属性。GeoJSON 支持以下几种主要的几何类型:
以下是一个简单的 GeoJSON 示例,包含一个点和一些属性:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [102.0, 0.5]
},
"properties": {
"name": "Sample Point",
"population": 1000
}
}
]
}
"FeatureCollection"
表示这是一个包含多个特征的集合。type
: "Point"
表示这是一种点几何类型。coordinates
: [102.0, 0.5]
这是点的经纬度坐标,分别表示经度和纬度。"name"
和 "population"
。GeoJSON 被广泛应用于地图展示、空间分析和地理数据交换,尤其在 JavaScript 中与地图库(如 Leaflet、Mapbox、Google Maps API 等)结合使用时非常方便。
Leaflet 是一个流行的 JavaScript 地图库,支持直接加载和展示 GeoJSON 数据。以下是如何在 Leaflet 中加载和显示 GeoJSON 数据的例子:
DOCTYPE html>
<html>
<head>
<title>GeoJSON Exampletitle>
<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet/dist/leaflet.js">script>
head>
<body>
<div id="map" style="height: 500px;">div>
<script>
var map = L.map('map').setView([0.5, 102.0], 5); // 初始中心点和缩放级别
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
}).addTo(map);
// GeoJSON 数据
var geojsonData = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [102.0, 0.5]
},
"properties": {
"name": "Sample Point",
"population": 1000
}
}
]
};
// 添加 GeoJSON 到地图
L.geoJSON(geojsonData).addTo(map);
script>
body>
html>
GeoJSON 文件的规范是由 RFC 7946 定义的,它规定了如何表示地理空间数据,包括几何数据类型、坐标参考系统(通常使用 WGS 84 坐标系统)以及特征集的结构。
GeoJSON 默认使用 WGS 84 坐标参考系统,即经度和纬度。经度范围为 [-180, 180],纬度范围为 [-90, 90]。
GeoJSON 是一个非常有用的格式,尤其在需要展示或交换地理数据时,能够大大简化数据处理和开发过程。