极客前沿

一步步搭建英国铁路实时地图:AI入门与API实战

2026-07-07 01:32
DEV Machine Learning
查看原文

学会获取实时数据、调用API、用React和D3.js制作动态地图,零基础也能上手。

你有没有想过,像英国铁路实时地图这样的酷炫项目是怎么做出来的?其实,它并不需要高深的AI知识,只需要一点点编程基础和一些实用工具。在这篇教程里,我会带你从零开始,一步步搭建一个实时地图,并在这个过程中学会如何获取数据、调用API,以及用简单的代码让数据“活”起来。

准备环境:你需要装什么?

在开始之前,确保你的电脑上已经安装了以下工具:

  • Node.js(一个让JavaScript在电脑上运行的环境):去官网下载最新版本,安装时一路点“下一步”就好。
  • 代码编辑器(比如VS Code):写代码的地方,免费又好用。
  • 浏览器(Chrome或Firefox):用来预览你的地图。

如果你还没装Node.js,可以去nodejs.org下载,安装完成后打开终端(Mac用终端,Windows用命令提示符),输入node -v,如果能显示版本号,就说明安装成功了。

获取数据:调用英国铁路API

实时地图的核心是数据。英国国家铁路提供了一个API(应用程序接口,简单说就是别人准备好的数据仓库,你可以通过代码去拿数据)。你需要先申请一个API密钥:

  1. 访问英国国家铁路API官网(搜索“National Rail API”即可找到)。
  2. 注册账号并申请API密钥。注意:这个过程可能需要几个小时甚至一天,耐心等待。
  3. 拿到密钥后,把它保存好,后面会用到。

接下来,用JavaScript写几行代码来获取数据。新建一个文件夹,在里面创建index.js文件,输入以下内容:

Tutorial Image
const fetch = require('node-fetch');
const apiKey = '你的API密钥';
fetch('https://api.nationalrail.co.uk/...', {
  headers: { 'Authorization': apiKey }
})
.then(res => res.json())
.then(data => console.log(data));

然后在终端运行node index.js,如果看到一堆JSON数据(看起来像乱码的文本),就说明你成功获取到实时火车信息了!

可视化:用React和D3.js画地图

拿到数据后,我们要把它变成地图。这里我们用React(一个流行的前端框架,帮你高效搭建用户界面)和D3.js(一个数据可视化库,专门用来画图表和地图)。

  1. 在终端运行npx create-react-app my-map,创建一个新的React项目。
  2. 进入项目文件夹:cd my-map
  3. 安装D3.js:npm install d3

现在,打开src/App.js,用以下代码替换原有内容:

import React, { useEffect, useState } from 'react';
import * as d3 from 'd3';

function App() {
  const [trains, setTrains] = useState([]);

  useEffect(() => {
    fetch('你的API地址')
      .then(res => res.json())
      .then(data => setTrains(data));
  }, []);

  return (
    
      {trains.map(train => (
        
      ))}
    
  );
}

export default App;

保存后,在终端运行npm start,浏览器会自动打开一个页面,你就能看到代表火车的小红点了。如果想让他们动起来,可以加上动画效果,比如每5秒重新获取一次数据并更新位置。

常见坑与下一步

新手最容易遇到两个问题:一是API密钥申请等待时间太长,建议提前申请;二是数据请求太频繁会被限制,解决办法是使用节流(控制请求频率)和错误处理(比如请求失败时自动重试)。

现在你已经成功搭建了一个实时地图!接下来可以尝试:添加延迟信息、让火车图标更漂亮,或者甚至加入用户反馈功能。记住,遇到问题多搜索Stack Overflow,那里有无数热心人帮你。

内容来源

DEV Machine Learning

发布时间

2026-07-07 01:32

返回 AI技术