雾霾定位探测系统

news/2024/11/16 12:38:59/

1@ 前言

贼鸡儿简单的一个实验达标测试题目,所以才选了它哈哈哈。好久没更博了,水一水,正好写点字。实验要求如下:

1.定位功能:将定位城市保存在服务器端,并同时显示在客户端。
2.界面设计:包含显示天气和空气质量指数的动态显示。
3.天气详情和空气质量指数:定位后的城市在服务器端获取后,传给天气详情界面,通过所传城市用百度天气api获取对应的天气详情和空气质量指数,并保存在服务器端。
4.完成报告。

2@ 解决思路

本实验最核心的问题可以分解如下:

1、定位问题
2、天气接口数据处理

由于现在百度,高德地图等浏览器端的 JS 定位接口需要支持 https 了,所以使用起来不是那么方便,故我选择使用 ip 定位,定位数据精确度高,而且天气数据接口也支持 ip 来查询,一举两得。实验中我使用的定位接口为:
https://ip.seeip.org/geoip

而对于天气数据接口,使用要求里面建议的和风天气免费版的数据接口,主要利用了基础版数据和空气质量数据,接口地址分别如下:
https://free-api.heweather.net/s6/weather/now?location=ip&key=xxx
https://free-api.heweather.net/s6/air/now?location=ip&key=xxx

定位 + 天气数据的请求全部在前端进行实现,用户访问页面即显示数据。使用 jQuery 进行 两次 ajax 请求,第一次获取到访问者 ip,第二次拼接 ip 获取到对应地点的天气数据,然后进行数据填充,渲染成型即可。

3@ 展示效果

实验使用 flask 框架进行快速开发,同时使用了使用了 jQuery 的幻灯片插件 OWL Carousel 进行了较优美的模板渲染工作。最终成型效果如下:
展示图
项目比较简单,主要是确定思路与寻找解决方案。已将代码上传至仓库,有需要可自取。地址为:
https://github.com/59lx/fog_detect

============================================================
2021.05.09 更新

4@ 代码更新与问题回答

没想到这么多人看蛤,在这统一回答下大家的问题。

1、代码无法下载等问题
最近不挂梯子好像 github 直接上不去,需要代码的同学文末我会分享一个百度云链接。

2、和风天气接口出现的问题
大部分原因都是版本迭代产生的,我当时用的版本现在好像都不支持了,所以我修复了相关问题,已经可以在最新的仓库中下载了。在最新修改的代码中,使用 ip 确定经纬度,利用经纬度再获取天气等数据,精度比之前更高。测试时已经可以精确到兴隆乡了。个人建议最好自己上和风天气注册一个 web api,填入自己的 key,防止接口限制。

3、折现图接口次数限制
之前文章没有折线图相关描述,因为功能是后面加的。此接口使用的是天气 API 平台,现在已经将之前的接口版本换为免费版的了,可以正常使用。

4、代码思路
看文章的应该都是学弟学妹,这里给大家说下代码思路。
服务是用 flask 启动的,主要功能就是占个端口,渲染模板方便些。
主要代码在 templates/ 目录下的 index.html 里面:
核心代码在125 行左右:
在这里插入图片描述
主要是获取相关接口参数,填充到对应模板处。大体代码不用修改,因为都是根据位置定位显示的。
在这里插入图片描述
折现图主要访问接口参数,填充到横纵坐标即可。
如果想要换背景,可以在 images/目录下放入想要的图片。然后在 css/ 目录下的 style.css 代码第 32 行的文件替换成想要的图片即可。

5@ 最后

由于之后可能因为工作等时间原因,很少跟进,希望大家有问题可以互相讨论,一般都是 API 版本更新问题,具体到代码里面修改,学习学习 jQuery 就可以。
写了这么多,骗大家一个赞不过分吧哈哈哈哈,可以的话可以上 github 点亮一下我的小项目谢谢大家~

代码百度云:
链接:https://pan.baidu.com/s/1MoGsDAaBC3lrzcw2XtavkA
提取码:urov


http://www.ppmy.cn/news/724886.html

相关文章

【LangChain】从LangChainHub加载(Loading from LangChainHub)

LangChain学习文档 Chains(链) 【LangChain】不同的调用方式(Different call methods)【LangChain】自定义chain【LangChain】调试Chain(Debugging chains)【LangChain】从LangChainHub加载(Loading from LangChainHub) 概述 LangChainHub 可以理解为…

(三)线程组和线程优先级

(三)线程组和线程优先级 3.1 线程组(ThreadGroup)3.2 线程的优先级01、Thread 的优先级02、ThreadGroup 和 Thread 优先级不一致问题 3.3 守护线程(Daemon)3.4 线程组的常用方法3.5 线程组的数据结构 3.1 线…

influxDB聚合类函数

influxDB聚合类函数 1&#xff09;count()函数 返回一个&#xff08;field&#xff09;字段中的非空值的数量。 SELECT COUNT(<field_key>) FROM <measurement_name> [WHERE <stuff>] [GROUP BY <stuff>] 例子1 计算非空water_level数量SELECT COUN…

【python教程】揭秘京东|淘宝秒杀抢购背后的黑幕,为什么你总抢不到商品?

前言 我们的目标是秒杀淘宝或京东等的订单&#xff0c;这里面有几个关键点&#xff0c;首先需要登录淘宝或京东&#xff0c;其次你需要准备好订单&#xff0c;最后要在指定时间快速提交订单。 这里就要用到一个爬虫利器Selenium&#xff0c;Selenium是一个用于Web应用程序测试…

服务器扩容思路及问题分析

点击关注公众号&#xff0c;回复“1024”获取2TB学习资源&#xff01; 为什么要扩容 说人话就是, 无论如何优化性能,能达到的最大值是一定的,对于一个用户量大的应用,可以对服务器进行各种优化,诸如限流、资源隔离,但是上限还是在那里,这时候就应该改变我们的硬件,例如使用更强…

写个码农们:从业互联网13年,才觉得卖卤菜比找风投上市靠谱只看楼主

10年风雨坑爹人生&#xff0c;略略回顾 -----------------------------回顾开始-------------------------------- 【黑客登场】十多年前的一天晚上&#xff0c;警察突然冲到了我家&#xff0c;把我带到省公安厅录口供开始&#xff0c;我的互联网人生从此拉开了序幕。。。&…

AI Time 7 | 人机交互的终极状态——人机共生

来源&#xff1a;AL TIME 论道 本文约5000字&#xff0c;建议阅读10分钟。 本文讲述了四位重量级嘉宾论道人机交互的发展及未来。 在电影《少数派报告》中&#xff0c;汤姆克鲁斯扮演的角色站在虚拟屏幕前&#xff0c;不用触摸任何实质的东西&#xff0c;仅靠一个特殊手套就能隔…

阿里入职的第一年,这是你想要的职场生活吗?

热文导读 | 点击标题阅读 Android架构进阶学习路线图 Java 学习路线 宁愿月薪1万招新人&#xff0c;却不愿给月薪5千的老员工涨薪 内容来源&#xff1a;本文转载自校招薪水微信公众号&#xff08;ID&#xff1a; OfferShow&#xff09;&#xff0c;好文请多支持&#xff01;感谢…