一个有关ajax去获取天气预报然后用echarts展现出来的小demo
时间: 2023-11-22 17:56:57 浏览: 81
全国天气预报
好的,以下是一个简单的示例代码:
HTML部分:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>天气预报</title>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.min.js"></script>
</head>
<body>
<h1>天气预报</h1>
<div id="chart" style="width: 600px;height:400px;"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="weather.js"></script>
</body>
</html>
```
JS部分:
```javascript
$(function () {
var chart = echarts.init(document.getElementById('chart'));
// 请求数据
$.ajax({
url: 'http://api.openweathermap.org/data/2.5/forecast?q=Shanghai&appid=your_appid&units=metric',
type: 'get',
dataType: 'json',
success: function (res) {
console.log(res);
var data = res.list.map(function (item) {
return {
date: item.dt_txt,
temperature: item.main.temp,
pressure: item.main.pressure
};
});
// 渲染图表
chart.setOption({
title: {
text: '上海未来五天天气预报'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['温度', '气压']
},
xAxis: {
type: 'category',
data: data.map(function (item) {
return item.date;
})
},
yAxis: [
{
type: 'value',
name: '温度',
axisLabel: {
formatter: '{value} °C'
}
},
{
type: 'value',
name: '气压',
axisLabel: {
formatter: '{value} hPa'
}
}
],
series: [
{
name: '温度',
type: 'line',
data: data.map(function (item) {
return item.temperature;
})
},
{
name: '气压',
type: 'line',
yAxisIndex: 1,
data: data.map(function (item) {
return item.pressure;
})
}
]
});
},
error: function (err) {
console.log(err);
}
});
});
```
注意:这里需要替换请求地址中的 `your_appid` 为你自己的 OpenWeatherMap API Key。此外,由于涉及到跨域请求,需要使用 JSONP 或在后端进行代理请求。
阅读全文