ARTICLE · 993671
基于安卓的空气质量查询系统
基于安卓的空气质量查询系统


随着工业化进程加快、机动车数量增长以及季节性气象条件变化,空气污染问题逐渐成为影响居民生活质量和身体健康的重要因素。空气质量中的PM2.5、PM10、二氧化硫、二氧化氮、臭氧和一氧化碳等指标,会直接影响人们的出行安排、户外运动计划及健康防护措施。传统空气质量信息查询方式通常存在数据分散、查询操作繁琐、信息展示不直观、用户互动不足等问题,用户难以及时了解所在城市或目标城市的空气污染状况。同时,当用户发现异常排放、空气污染现象或环境问题时,缺少便捷、统一的线上反馈渠道。因此,如何利用移动互联网技术实现空气质量信息的集中展示、城市空气数据查询、天气资讯浏览、地图定位展示以及污染问题举报,成为当前环境信息服务领域需要解决的问题。基于此,开发一套面向安卓移动端的空气质量查询系统具有较强的现实需求。
本课题设计并实现了一套基于安卓的空气质量查询系统,系统采用B/S架构进行开发,后端使用Java语言和Spring Boot框架构建RESTful接口,数据库采用MySQL存储用户信息、城市信息、空气质量数据、天气资讯、论坛帖子及举报记录等业务数据;前端管理端采用HTML、CSS和JavaScript实现,安卓移动端采用uni-app框架进行开发,并通过HBuilder工具完成移动端页面编写与安卓模拟器调试。系统设置用户和管理员两类角色。用户可完成注册登录、天气资讯查看、城市空气质量查询、空气质量地图查看、社交论坛交流、环境问题举报以及个人信息维护等操作;管理员可对城市信息、空气质量数据、地图信息、用户举报、用户信息和论坛内容进行统一管理,同时通过数据可视化模块查看空气质量变化趋势、城市空气质量对比等统计结果。系统通过权限控制机制保证不同角色访问功能的安全性与规范性。

开发语言:Java
数据库:MySQL
系统架构:B/S
后端框架:Spring Boot
前端:HTML、CSS、JavaScript
安卓框架:uniapp
开发工具:IDEA+HBuilder+安卓模拟器

系统包括两个角色用户和管理员。
1)用户:注册登录、查看天气资讯、查看空气质量、社交论坛、用户举报、管理个人信息。
2)管理员:城市信息管理、空气质量管理、地图信息管理、用户举报管理、用户信息管理、社交论坛管理、数据可视化。

一:用户
☀️1.登录注册☀️

☀️2.查看天气资讯☀️

☀️3.查看空气质量☀️

☀️4.大屏数据化☀️

二:管理员
☀️1.用户管理☀️

☀️2.空气质量管理☀️

☀️3.地图信息管理☀️

☀️4.城市信息管理☀️


6.1.空气质量查询代码示例:
@RestController@RequestMapping("/api/air")public class AirQualityController {@Autowiredprivate AirQualityService airQualityService;@GetMapping("/city/{cityName}")public Result<AirQuality> getAirQualityByCity(@PathVariable String cityName) {if (cityName == null || cityName.trim().isEmpty()) {return Result.fail("城市名称不能为空");}AirQuality airQuality = airQualityService.getLatestByCityName(cityName.trim());if (airQuality == null) {return Result.fail("暂未查询到该城市的空气质量数据");}return Result.success("查询成功", airQuality);}}@Servicepublic class AirQualityServiceImpl implements AirQualityService {@Autowiredprivate AirQualityMapper airQualityMapper;@Overridepublic AirQuality getLatestByCityName(String cityName) {AirQuality airQuality = airQualityMapper.selectLatestByCityName(cityName);if (airQuality != null) {airQuality.setLevel(getAirLevel(airQuality.getAqi()));airQuality.setMainPollutant(airQuality.getMainPollutant() == null ?"暂无数据" : airQuality.getMainPollutant());}return airQuality;}private String getAirLevel(Integer aqi) {if (aqi == null) return "暂无数据";if (aqi <= 50) return "优";if (aqi <= 100) return "良";if (aqi <= 150) return "轻度污染";if (aqi <= 200) return "中度污染";if (aqi <= 300) return "重度污染";return "严重污染";}}
6.2 用户提交功能代码示例:
export default {data() {return {form: {title: '',content: '',cityName: '',phone: ''},submitting: false}},methods: {submitReport() {if (!this.form.title.trim()) {return uni.showToast({ title: '请填写举报标题', icon: 'none' })}if (!this.form.content.trim()) {return uni.showToast({ title: '请填写举报内容', icon: 'none' })}if (!this.form.cityName.trim()) {return uni.showToast({ title: '请填写所在城市', icon: 'none' })}this.submitting = trueuni.request({url: 'http://localhost:8080/api/report/add',method: 'POST',header: {'content-type': 'application/json','token': uni.getStorageSync('token')},data: this.form,success: (res) => {if (res.data.code === 200) {uni.showToast({ title: '举报提交成功', icon: 'success' })this.form = { title: '', content: '', cityName: '', phone: '' }} else {uni.showToast({ title: res.data.message, icon: 'none' })}},fail: () => uni.showToast({ title: '网络连接失败', icon: 'none' }),complete: () => { this.submitting = false }})}}}


IT毕设小研
想了解更多请搜索公众号:IT毕设小研
感谢您抽出时间来阅读此文