环境准备
下载 QueryView 插件
插件里搜索 Query 下载

到高德地图里创建 key
用其他提供天气和位置 API 的平台也可以
我这里以高德地图来举例子
到高德地图的控制台里点左边的 应用管理-我的应用,然后点右上角的 创建key,然后服务平台选择 web服务

然后复制你的 key

把你的 key 放到下面的代码
根据地区码获取当前位置天气信息
//!js
let dv = Query.DataView(protyle, item, top);
fetch("https://restapi.amap.com/v3/weather/weatherInfo?key=换成你的key&city=换成你的城市码&extensions=base")
.then(async response => {
if (!response.ok) {
throw new Error("天气数据请求失败");
}
const data = await response.json();
const weatherData = data.lives[0];
const province = weatherData.province;
const city = weatherData.city;
const adcode = weatherData.adcode;
const weather = weatherData.weather;
const temperature = weatherData.temperature;
const windDirection = weatherData.winddirection;
const windPower = weatherData.windpower;
const humidity = weatherData.humidity;
const reportTime = weatherData.reporttime;
dv.addmd('根据地区码获取当前位置天气信息');
const weatherText = `
省份:${province}
区域:${city}
区域编码:${adcode}
天气现象:${weather}
实时气温:${temperature}°C
风向描述:${windDirection}
风力级别:${windPower}级
空气湿度:${humidity}%
数据发布的时间:${reportTime}
`;
// 假设 addmd 支持换行符或者你可以逐行添加
dv.addmd(weatherText.trim());
})
.catch(error => {
console.error("获取天气信息出错:", error);
dv.addmd("> 天气信息获取失败,请稍后再试。");
});
dv.render();
把上面代码中的 key 和 city 换成你的 key 和你所在地的城市码
fetch("https://restapi.amap.com/v3/weather/weatherInfo?key=换成你的key&city=换成你的城市码&extensions=base")
根据根据 ip 获取当前位置天气信息
//!js
let dv = Query.DataView(protyle, item, top);
// 获取IP定位的城市代码
fetch('https://restapi.amap.com/v3/ip?key=换成你的key')
.then(async ipResponse => {
if (!ipResponse.ok) throw new Error('IP定位失败');
const ipData = await ipResponse.json();
if (ipData.status !== '1') throw new Error(ipData.info || 'IP定位服务异常');
const cityCode = ipData.adcode;
// 使用城市代码获取天气
return fetch(`https://restapi.amap.com/v3/weather/weatherInfo?key=换成你key&city=${cityCode}&extensions=base`);
})
.then(async weatherResponse => {
if (!weatherResponse.ok) throw new Error('天气查询失败');
const weatherData = await weatherResponse.json();
if (weatherData.status !== '1') throw new Error(weatherData.info || '天气服务异常');
const weatherInfo = weatherData.lives[0];
dv.addmd('根据ip获取当前位置天气信息');
dv.addmd(`
**省份**: ${weatherInfo.province}
**城市**: ${weatherInfo.city}
**区域编码**: ${weatherInfo.adcode}
**天气现象**: ${weatherInfo.weather}
**实时气温**: ${weatherInfo.temperature}°C
**风向**: ${weatherInfo.winddirection}
**风力**: ${weatherInfo.windpower}级
**湿度**: ${weatherInfo.humidity}%
**发布时间**: ${weatherInfo.reporttime}
`);
})
.catch(error => {
console.error('获取天气数据失败:', error);
dv.addmd('## 获取天气数据失败\n> ' + (error.message || '请检查网络连接或稍后再试'));
});
dv.render();
同理,把上面代码中的 key 换成你的 key
fetch('https://restapi.amap.com/v3/ip?key=换成你的key')
// 使用城市代码获取天气
return fetch(`https://restapi.amap.com/v3/weather/weatherInfo?key=换成你key&city=${cityCode}&extensions=base`);
})
效果

高德 API 说明文档
天气查询-高级 API 文档-开发指南-Web 服务 API | 高德地图 API
根据说明文档查询需要返回数据的参数名。
天气预测官方文档天气-服务-教程-地图 JS API 1.4| 高德地图 API
注:放的是城市编码,而不是邮政编码。
查询城市编码网址:2025 年全国行政区划代码查询 - Converts 在线工具
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于