技术博客
免费地震信息:用经纬度(lat/lng)在地图上标点绘制震中分布

免费地震信息:用经纬度(lat/lng)在地图上标点绘制震中分布

作者: 万维易源
2026-09-03
地震信息地图经纬度可视化
# 免费地震信息:用经纬度(lat/lng)在地图上标点绘制震中分布 - **接口/接入点**:免费地震信息 · 2274-1 - **是否免费**:是(注册即免费额度) - **请求方式**:POST / GET - **返回格式**:JSON - **适用人群**:前端开发者、数据分析师、科普运营 - **阅读时间**:约 8 分钟 ## 核心要点 - 每条地震带 `lat`(纬度)和 `lng`(经度)十进制字段,可直接用于地图标点。 - 坐标系为 WGS84 十进制经纬度(文档未明示,实测符合 WGS84),主流地图 SDK 默认可直接消费。 - 结合 `mag` 用圆点大小/颜色表示震级,即可生成直观的「震中分布图」。 ## Why:一图胜千言 列出一堆地名和数字很难让人直观感受地震分布。把震中打到地图上、用颜色区分震级,科普效果和数据分析价值立刻提升——这也最适合用本接口返回的经纬度字段。 ## What:接口速览 | 项 | 值 | |----|----| | 接口地址 | `https://route.showapi.com/2274-1?appKey={your_appKey}` | | 经纬度字段 | `lat`(纬度)、`lng`(经度),十进制 | | 坐标系 | WGS84(文档未明示,按实测使用;若接入国内地图如对精度有要求请先做坐标转换核对) | | 计费 | 免费(档位限制见 [免费 API 说明](https://www.showapi.com/free-api)) | ## How:地图标点(Leaflet 示例) 下面用开源 Leaflet 把某日地震打到地图上,圆点半径随震级变化。 ```html <!doctype html> <html><head><meta charset="utf-8"> <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> const map = L.map("map").setView([30, 105], 3); L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png").addTo(map); const APP_KEY = "YOUR_APPKEY"; async function draw(date) { const url = `https://route.showapi.com/2274-1?appKey=${APP_KEY}`; const r = await fetch(url, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ date }), }); const body = (await r.json()).showapi_res_body; (body.earthquakes || []).forEach(eq => { L.circleMarker([eq.lat, eq.lng], { radius: 3 + eq.mag * 2, color: eq.mag >= 5 ? "red" : "orange", }).addTo(map).bindPopup(`${eq.location}<br>震级 ${eq.mag} · 深度 ${eq.dep}km`); }); } draw("20250120"); </script></body></html> ``` ## 返回示例与解析 ```json { "showapi_res_body": { "ret_code": 0, "count": 1, "earthquakes": [ { "lat": 23.23, "lng": 120.47, "mag": 6, "dep": 10, "location": "台湾玉井北12 公里处" } ] } } ``` `lat`/`lng` 即标点坐标;`mag` 用于决定圆点大小/颜色。 ## 进阶 / 边界 - **坐标系确认**:文档未声明坐标系,实测经纬度为十进制 WGS84。若叠加到高德/百度等采用 GCJ-02/BD-09 的国内地图且对位置精度敏感,需先做坐标转换并核对偏差,不要直接假设。 - **批量标点频率**:免费额度有限,不要在循环里逐条单独请求;一次取回当日全部记录后本地渲染。 - **地区筛选**:`area` 不可靠,要「只画某省」请在客户端按 `location` 过滤后再标点。 - 更多字段口径见 [返回字段全解](https://www.showapi.com/guides/earthquake-info-response-fields-2274)。 ## FAQ **Q1:经纬度能直接用在百度/高德地图吗?** 接口返回的是 WGS84 十进制经纬度。Leaflet + OSM 默认可直接用;高德/百度采用 GCJ-02/BD-09,直接打点会有偏移,需做坐标转换后使用。 **Q2:圆点大小怎么定合理?** 可用线性映射,如 `radius = 3 + mag * 2`(震级越大圆越大),并对 mag≥5 用红色强调。具体阈值按你的数据分布调整。 **Q3:如何只显示某省地震?** 取回 `earthquakes[]` 后,按 `location` 是否包含目标省名关键字过滤,再标点。不要依赖 `area` 参数(实测未按省名过滤)。 **Q4:一次能标多少点?会不会超频?** 一次请求返回当日全部记录,本地渲染不受限。注意免费额度,按日取数即可,别高频重复请求。 ## 相关能力 / 下一步阅读 - [免费地震信息:返回字段全解(ret_code / mag / from 一文读懂)](https://www.showapi.com/guides/earthquake-info-response-fields-2274) - [免费地震信息:date 与 area 参数使用指南(含实测筛选坑)](https://www.showapi.com/guides/earthquake-info-params-guide-2274) - [免费地震信息:做一个「全球近期地震」查询页(前端实战)](https://www.showapi.com/guides/earthquake-info-recent-quakes-app-2274) - **本系列共 14 篇**:查看[免费地震信息指南总目录](https://www.showapi.com/guides/earthquake-info-guides-2274)