基于Java实现震中附近风景区预警可视化分析实践
目录
前言
一、空间数据说明
1、表结构信息展示
2、空间范围查询
二、Java后台开发实现
1、模型层设计与实现
2、控制层设计与实现
三、Leaflet地图开发
1、地震震中位置展示
2、百公里风景区列表展示
3、风景区列表展示
4、附近风景区展示
四、总结
前言
地震这类地址灾害的发生常常是不能提前预知的,而往往在人群聚集的地方会给人们带来巨大的财产损失。在人类活动过程中,旅游景点往往是人们热门的出行地方,尤其是5A、4A级这样的旅游景区。在出行的过程当中,往往是没有进行任何准备的。这里以2017年8月8日,发生在我国四川省阿坝州九寨沟县的M7.0级地震为例,详细展示了在震区100公里范围内的所有A级旅游景点。通过100公里范围内的旅游景点展示,同时展示直线距离。为地震发生后,结合地震的震级和影像范围,为地震范围内的旅游景点,尤其是热门旅游景点的影响评估做一个评估参考。突如其来的地震,已导致部分列车停运,不少游客被困景区。九寨沟风景名胜区位于九寨沟县漳扎镇境内,地震发生当日接待游客量为3.4万余人次。目前,九寨沟风景名胜区管理局正全力开展景区排险工作,为保证游客游览安全,九寨沟景区停止接待游客。具体接待游客时间另行通告。九寨沟风景名胜区管理局表示,已经预订了8月9日及以后门车票的游客可到阿坝文旅办理退票,已出8月9日票的游客,在九寨沟景区沟口售票大厅办理退票。
这次地震对旅游风景区的影响很大。地震及后续的余震对这些游客和当地的老板姓都是很大的安全威胁。本文基于地震信息和全国风景旅游区位置信息,在发震位置点构建一个直径100公里的影响范围景区列表。将地震震级、风景区里震中位置距离、风景区级别、旅游人数信息(可以从景点接待处获取),在实际工作当中,我们可以结合这些数据进行地震风险评估,为后续的救援和应急力量的输送与分配推送一个比较优化的方案。
本文使用Java开发语言,使用PostGIS空间数据库,构建这样一个空间范围分析模型,输出震中百公里影响景点。将作为下一步的数据分析基础提供数据支撑。通过构建源点位与目标点位的实际距离,构建模型分析的基本要素之一,感兴趣的朋友可以看看本文,了解相关的知识。
一、空间数据说明
本节将对空间数据结构和数据,100公里范围的空间分析查询进行简单介绍。让大家了解如何进行地震位置指定范围风景区查询。查询涉及的表有两张,第一张是地震信息表,第二张是风景区信息表。
1、表结构信息展示
这里直接展示地震信息表和风景区信息表两张表的物理结构,表结构信息如下:
上述这两张表的DDL语句如下所示:
CREATE TABLE "public"."biz_ceic_earthquake" ("pk_id" int8 NOT NULL,"auto_flag" varchar(30) COLLATE "pg_catalog"."default","cata_id" varchar(30) COLLATE "pg_catalog"."default","cata_type" varchar(30) COLLATE "pg_catalog"."default","epi_depth" numeric(11,8),"epi_lat" varchar(15) COLLATE "pg_catalog"."default","epi_lon" varchar(15) COLLATE "pg_catalog"."default","eq_cata_type" varchar(30) COLLATE "pg_catalog"."default","eq_type" varchar(30) COLLATE "pg_catalog"."default","is_del" varchar(6) COLLATE "pg_catalog"."default","location_c" varchar(255) COLLATE "pg_catalog"."default","location_s" varchar(100) COLLATE "pg_catalog"."default","loc_stn" varchar(20) COLLATE "pg_catalog"."default","m" varchar(10) COLLATE "pg_catalog"."default","mmb" varchar(10) COLLATE "pg_catalog"."default","mmb2" varchar(10) COLLATE "pg_catalog"."default","mml" varchar(10) COLLATE "pg_catalog"."default","mms" varchar(10) COLLATE "pg_catalog"."default","mms7" varchar(10) COLLATE "pg_catalog"."default","new_did" varchar(16) COLLATE "pg_catalog"."default","o_time" timestamp(6),"o_time_fra" varchar(10) COLLATE "pg_catalog"."default","save_time" timestamp(6),"sum_stn" varchar(10) COLLATE "pg_catalog"."default","sync_time" timestamp(6),"epi_id" varchar(10) COLLATE "pg_catalog"."default","geom" "public"."geometry",CONSTRAINT "pk_biz_ceic_earthquake" PRIMARY KEY ("pk_id")
);CREATE INDEX "idx_biz_ceic_earthquake_eqidept" ON "public"."biz_ceic_earthquake" USING btree ("epi_depth" "pg_catalog"."numeric_ops" ASC NULLS LAST
);
CREATE INDEX "idx_biz_ceic_earthquake_geom" ON "public"."biz_ceic_earthquake" USING gist ("geom" "public"."gist_geometry_ops_2d"
);
CREATE INDEX "idx_biz_ceic_earthquake_m" ON "public"."biz_ceic_earthquake" USING btree ("m" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
COMMENT ON COLUMN "public"."biz_ceic_earthquake"."pk_id" IS '主键id';
COMMENT ON COLUMN "public"."biz_ceic_earthquake"."epi_depth" IS '地震深度';
COMMENT ON COLUMN "public"."biz_ceic_earthquake"."epi_lat" IS '纬度';
COMMENT ON COLUMN "public"."biz_ceic_earthquake"."epi_lon" IS '经度';
COMMENT ON COLUMN "public"."biz_ceic_earthquake"."geom" IS '位置';
COMMENT ON TABLE "public"."biz_ceic_earthquake" IS '中国地震台网信息表';
CREATE TABLE "public"."biz_scenic_spot" ("id" int8 NOT NULL,"name" varchar(255) COLLATE "pg_catalog"."default","level" varchar(4) COLLATE "pg_catalog"."default","province" varchar(255) COLLATE "pg_catalog"."default","city" varchar(255) COLLATE "pg_catalog"."default","area" varchar(255) COLLATE "pg_catalog"."default","address" varchar(255) COLLATE "pg_catalog"."default","evaluation_time" varchar(255) COLLATE "pg_catalog"."default","publish_time" varchar(255) COLLATE "pg_catalog"."default","lng_gcj02" varchar(30) COLLATE "pg_catalog"."default","lat_gcj02" varchar(30) COLLATE "pg_catalog"."default","lng_bd09" varchar(30) COLLATE "pg_catalog"."default","lat_bd09" varchar(30) COLLATE "pg_catalog"."default","lng_wgs84" varchar(30) COLLATE "pg_catalog"."default","lat_wgs84" varchar(30) COLLATE "pg_catalog"."default","geom" "public"."geometry","publish_link" varchar(255) COLLATE "pg_catalog"."default",CONSTRAINT "pk_biz_scenic_spot" PRIMARY KEY ("id")
);
CREATE INDEX "idx_biz_scenic_spot_geom" ON "public"."biz_scenic_spot" USING gist ("geom" "public"."gist_geometry_ops_2d"
);
COMMENT ON COLUMN "public"."biz_scenic_spot"."id" IS '主键';
COMMENT ON COLUMN "public"."biz_scenic_spot"."name" IS '景区名称';
COMMENT ON COLUMN "public"."biz_scenic_spot"."level" IS '景区级别';
COMMENT ON COLUMN "public"."biz_scenic_spot"."province" IS '所属省份';
COMMENT ON COLUMN "public"."biz_scenic_spot"."city" IS '所属城市';
COMMENT ON COLUMN "public"."biz_scenic_spot"."area" IS '所属区县';
COMMENT ON COLUMN "public"."biz_scenic_spot"."address" IS '地址';
COMMENT ON COLUMN "public"."biz_scenic_spot"."evaluation_time" IS '评定时间';
COMMENT ON COLUMN "public"."biz_scenic_spot"."publish_time" IS '发布时间';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lng_gcj02" IS 'lng_GCJ02';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lat_gcj02" IS 'lat_GCJ02';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lng_bd09" IS 'lng_BD09';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lat_bd09" IS 'lat_BD09';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lng_wgs84" IS 'lng_WGS84';
COMMENT ON COLUMN "public"."biz_scenic_spot"."lat_wgs84" IS 'lat_WGS84';
COMMENT ON COLUMN "public"."biz_scenic_spot"."publish_link" IS '发布链接';
COMMENT ON TABLE "public"."biz_scenic_spot" IS '全国风景区信息表';
2、空间范围查询
与之前介绍过的附近城市分析涉及的空间分析查询一样,主要的空间分析函数是:st_dwithin,这里依然以九寨沟地震震发中心点为查询样例:
SELECT T.*,st_x ( T.geom ) lon,st_y ( T.geom ) lat,st_distance ( T.geom :: geography, t1.geom :: geography ) dist
FROMbiz_scenic_spot T,biz_ceic_earthquake t1
WHEREt1.pk_id = 1780964053414354949 AND st_dwithin ( T.geom :: geography, t1.geom :: geography, 5000 * 20 )
ORDER BYdist;
在PostGIS当中执行上述空间查询语句之后,可以看到以下结果:
下面的章节将实现把上面的查询结果进行Web应用开发,完全实现通过一个地震点来实时查询地震点附近的风景区列表分析。
二、Java后台开发实现
在了解了空间数据查询的SQL具体的写法之后,我们来开发针对性的后台。开发语言采用我们熟悉的Java开发语言。java开发采用熟悉的MVC三层开发模式。
1、模型层设计与实现
在模型层,我们主要介绍实体类的代码实现和Mapper即数据库访问层的设计与实现。实体类主要用来将数据库查询的结果集绑定到对象中。而Mapper则实现对PostGIS空间数据库的绑定和设置。实例代码如下:
package com.yelang.project.extend.scenicspot.domain;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@NoArgsConstructor
@AllArgsConstructor
@Setter
@Getter
@ToString
public class ScenicSpotDistVo implements Serializable{private static final long serialVersionUID = -1403627497900208179L;private BigDecimal dist;//距离private String address;//位置private String name;//名称private String level;//风景区级别private String lon;//经度private String lat;
}
在Mapper接口中定义以下方法,用于实现从数据库中查询相应的风景区数据列表。
static final String FIND_LIST_BY_EARTHID = "<script>"+ " select t.name,t.level,t.address,st_x(t.geom) lon,st_y(t.geom) lat, "+ " st_distance(t.geom :: geography, t1.geom :: geography) dist from biz_scenic_spot t,biz_ceic_earthquake t1 "+ " where t1.pk_id= #{eqId} and st_dwithin(t.geom :: geography,t1.geom :: geography,100000 ) order by dist "+ "</script>";
/*** 查询地震100公里范围内的风景区列表
* @param eqId
* @return 地震发生地点100公里范围内的景区
*/
@Select(FIND_LIST_BY_EARTHID)
List<ScenicSpotDistVo> findListByEarthId(@Param("eqId") Long eqId);
2、控制层设计与实现
业务层比较简单,不进行详细说明。在这个实例当中,业务层的实现比较简单。这里将控制层的代码实现进行说明。这里仅实现页面的跳转和一个ajax接口,关键代码如下:
//跳转附近风景区页面,用get请求
@RequiresPermissions("ceiceq:info:nearbyss")
@GetMapping("/nearbyscenicspot/{pkId}")
public String nearbyScenicSpot(@PathVariable("pkId")Long pkId,ModelMap mmap){mmap.put("pkId", pkId);CeicEarthquake earthQuake = ceicEarthQuakeService.getById(pkId);mmap.put("earthQuake", earthQuake);List<ScenicSpotDistVo> dataList = scenicSpotService.findListByEarthId(pkId);mmap.put("dataList", dataList);return prefix + "/nearbyscenicspot";
}/**
* 获取附近风景区列表数据,用post
* @param pkId
* @return
*/
@PostMapping("/nearbyscenicspot/{pkId}")
@ResponseBody
public AjaxResult nearbyScenicSpot(@PathVariable("pkId")Long pkId){AjaxResult ar = AjaxResult.success();List<ScenicSpotDistVo> dataList = scenicSpotService.findListByEarthId(pkId);ar.put("data", dataList);return ar;
}
以上代码即给出了后台Java实现的关键代码。通过以上代码即完成了空间数据分析查询接口开发。下面通过Leaflet组件来进行地图可视化开发。
三、Leaflet地图开发
本小节主要讲解如何使用Leaflet进行空间可视化展示开发。关于Leaflet的相关知识不再赘述,这里提供关键代码:
1、地震震中位置展示
在进行地震百公里风景区可视化展示时,首先需要对震中位置进行展示。关键的代码如下所示。
var lon = [[${earthQuake.epiLon}]];
var lat = [[${earthQuake.epiLat}]];
var cityInfo = [[${earthQuake.locationC}]];
//矢量文本标签渲染器
var canvasLabel = new L.CanvasLabel({defaultLabelStyle: {collisionFlg: true,scale: 1.2,strokeStyle: "white",fillStyle: "#fff",lineWidth:15}
});
$(function() {var marker = L.circleMarker(new L.LatLng(lat, lon), {radius: 8,labelStyle: {text: cityInfo,rotation: 0,zIndex: 2,strokeStyle :"red"},color : "red"}).addTo(mymap);//展示距离showDistance();});
2、百公里风景区列表展示
关键代码如下:
function showDistance(){$.ajax({ type:"post", url:prefix + "/nearbyscenicspot/" + [[${pkId + ''}]], dataType:"json", cache:false,processData:false,success:function(result){if(result.code == web_status.SUCCESS){var strokeStyleSet = "green";for(var i=0;i<result.data.length;i++){var dataInfo = result.data[i];var dist = dataInfo.dist;if(parseFloat(dist) <= 30000){strokeStyleSet = "red";}if(parseFloat(dist) > 30000 && parseFloat(dist) <= 60000 ){strokeStyleSet = "orange";}if(parseFloat(dist) >= 60000){strokeStyleSet = "green";}var _dist = parseFloat(dataInfo.dist / 1000).toFixed(2);var content = "<strong>风景区名称:</strong>"+dataInfo.name + "<br/><strong>震中位置:</strong>"+ cityInfo;content += "<br/><strong>风景区级别:</strong>"+dataInfo.level + "<br/><strong>距离(千米):</strong>"+_dist;var marker = L.circleMarker(new L.LatLng(dataInfo.lat, dataInfo.lon), {radius: 8,labelStyle: {text: dataInfo.name,rotation: 0,zIndex: i,strokeStyle :strokeStyleSet},color : strokeStyleSet}).addTo(mymap);marker.bindPopup(content); L.polyline([[[lat, lon],[dataInfo.lat, dataInfo.lon]]], {labelStyle: {text: _dist + "千米",zIndex: 0,collisionFlg: false,textAlign:'center',strokeStyle :strokeStyleSet},color : strokeStyleSet}).addTo(mymap);}}},error:function(){$.modal.alertWarning("获取信息失败");}});}
3、风景区列表展示
<table class="table table-bordered white-bg" ><thead><tr><th width="50%">风景区名称</th><th>风景区级别</th><th>距离(公里)</th></tr></thead><tbody><tr th:each="data,itemStat:${dataList}"><td >[[${itemStat.count}]]、[[${data.name}]]</td><td>[[${data.level}]]</td><td th:text="${#numbers.formatDecimal((data.dist / 1000 ), 1, 2)}"></td></tr></tbody></table>
4、附近风景区展示
地震点列表及震中位置定位功能示意图
可以看到,震中位置附近有很多的风景名胜区,其中就有5A级风景区,九寨沟。距离震中最近的还有8公里左右的爱情海景区。30公里范围内还有一个4A级的阿坝州九寨沟县嫩恩桑措旅游景区。完整的列表表单如下所示:
风景区名称 | 风景区级别 | 距离(公里) |
---|---|---|
1、爱情海景区 | 4A | 8.21 |
2、九寨沟风景名胜区 | 5A | 10.46 |
3、阿坝州九寨沟县嫩恩桑措旅游景区 | 4A | 22.90 |
4、九寨沟县九寨庄园景区 | 3A | 39.79 |
5、九寨沟柴门关景区 | 3A | 39.92 |
6、九寨县甲勿海景区 | 3A | 40.48 |
7、松潘县奇峡沟冰雪欢乐景区 | 3A | 42.98 |
8、上磨水乡 | 2A | 45.16 |
9、天堂香谷 | 2A | 46.01 |
10、岷江源景区 | 3A | 50.13 |
11、松潘县川主寺旅游景区 | 4A | 50.29 |
12、黄龙国家级风景名胜区 | 5A | 52.12 |
13、松潘县松州古城 | 3A | 64.51 |
14、文县白马河民俗风情旅游景区 | 4A | 65.44 |
15、舟曲县亚哈藏民俗旅游文化生态园景区 | 2A | 66.19 |
16、涪阳古镇 | 3A | 72.53 |
17、若尔盖县巴西会议红色旅游景区 | 3A | 77.09 |
18、舟曲县拉尕山景区 | 4A | 78.08 |
19、舟曲县土桥子国家景区 | 3A | 81.56 |
20、舟曲特大山洪泥石流灾害纪念园 | 3A | 82.49 |
21、舟曲县各皂坝国家景区 | 3A | 82.96 |
22、舟曲县翠峰山景区 | 2A | 84.63 |
23、迭部县茨日那毛主席旧居景区 | 3A | 85.71 |
24、文县天池旅游景区 | 4A | 85.98 |
25、武都区朝阳洞旅游景区 | 3A | 86.05 |
26、若尔盖县花湖生态旅游区 | 4A | 86.56 |
27、舟曲县巴寨沟国家景区 | 3A | 87.94 |
28、迭部县俄界景区 | 4A | 88.51 |
29、宕昌县山湾梦谷古羌民俗旅游景区 | 3A | 90.58 |
30、黄河九曲第一湾 | 4A | 91.27 |
31、西部牧场 | 3A | 93.17 |
32、阿坝州红原县日干乔景区 | 4A | 97.69 |
33、迭部县白云景区 | 3A | 98.42 |
四、总结
以上就是本文的主要内容,本文使用Java开发语言,使用PostGIS空间数据库,构建这样一个空间范围分析模型,输出震中百公里影响景点。将作为下一步的数据分析基础提供数据支撑。通过构建源点位与目标点位的实际距离,构建模型分析的基本要素之一,感兴趣的朋友可以看看本文,了解相关的知识。
文章通过对空间数据库表的设计以及空间分析查询语句的编写,让大家掌握如何在PostGIS数据库中进行空间分析,最后使用Leaflet组件调用Java服务完成了震中附近风景区列表的分析实战。行文仓促,定有不足之处,不当之处,还请各位专家博主在评论区批评指正,万分感谢。
相关文章:

基于Java实现震中附近风景区预警可视化分析实践
目录 前言 一、空间数据说明 1、表结构信息展示 2、空间范围查询 二、Java后台开发实现 1、模型层设计与实现 2、控制层设计与实现 三、Leaflet地图开发 1、地震震中位置展示 2、百公里风景区列表展示 3、风景区列表展示 4、附近风景区展示 四、总结 前言 地震这类…...

【CTF Web】CTFShow web7 Writeup(SQL注入+PHP+进制转换)
web7 1 阿呆得到最高指示,如果还出问题,就卷铺盖滚蛋,阿呆心在流血。 解法 注意到: <!-- flag in id 1000 -->拦截很多种字符,连 select 也不给用了。 if(preg_match("/\|\"|or|\||\-|\\\|\/|\\*|\…...

ABAP WRITE换行输出
不换行: write hello world!. write 春天马上就到了!. 换行: write hello world!. write /春天马上就到了!. 换行的第二种: write: hello world! ,/,春天马上就到了!....

VUE3学习第一篇:启动ruoyi
1、找到ruoyi的vue3版本 然后下载代码到本地, 我刚开始用的nodejs14报错, 后面换成nodejs16,启动前端成功了。 页面如下图所示...

python-数据可视化(总)
python-数据可视化 ** 数据可视化 指的是通过可视化表示来探索数据,它与数据挖掘**紧密相关,而数据挖掘指的是使用代码来探索数据集的规律和关联。数据集可以是用一行代码就能表示的小型数字列表,也可以是数以吉字节的数据 最流行的工具之一…...

使用git生成SSH公钥,并设置SSH公钥
1、在git命令行里输入以下命令 ssh-keygen -t rsa 2、按回车,然后会看到以下字眼 Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa) 例: 3、继续回车,然后会看到以下字眼 Enter…...

iPhone win10更改备份路径
1 删掉或改名 旧的Backup, 否则不能连接 ren "C:\Users\Administrator\Apple\MobileSync\Backup" Backup_old 2 在目标盘中 创建新的文件夹 手动创建 MobileSync\Backup 3 链接两个文件夹 mklink /J "C:\Users\Administrator\Apple\MobileSync\Backup" &qu…...

Jmeter元件及基本作用域
🚀从今天开始学习性能测试工具——Jmeter,小梦也是先学习了下Jmeter的元件概念以及其基本的作用域,整理了下笔记,希望不管是从事开发领域还是测试领域的朋友们,我们一起学习下Jmeter工具,提升工作中的技能&…...

GB-T 43696-2024 网络安全技术 零信任参考体系架构
GB-T 43696-2024 网络安全技术 零信任参考体系架构 编写背景 随着网络环境的日益复杂,传统的网络安全策略已经难以满足现代企业的需求。为了应对不断变化的安全威胁,零信任安全模型应运而生。GB-T 43696-2024《网络安全技术 零信任参考体系架构》是中国…...

Java使用apache.poi生成excel插入word中
加油,新时代打工人! 工作需求,上个文章我们生成好的word,这次将生成好的excel表格数据,插入word中。需要准备好excle数据,然后插入到word中。 最后个需要,就是把这些生成好的word文档转成pdf进行…...

斯坦福报告解读3:图解有趣的评估基准(上)
《人工智能指数报告》由斯坦福大学、AI指数指导委员会及业内众多大佬Raymond Perrault、Erik Brynjolfsson 、James Manyika等人员和组织合著,旨在追踪、整理、提炼并可视化与人工智能(AI)相关各类数据,该报告已被大多数媒体及机构…...

C语言---扫雷游戏的实现
1.扫雷游戏的分析和设计 需要创建3个文件夹 test.c----扫雷游戏的测试 game.c----扫雷游戏的实现 game.h----扫雷游戏的实现 雷的信息使用二维数组存放 • 使⽤控制台实现经典的扫雷游戏 • 游戏可以通过菜单实现继续玩或者退出游戏 • 扫雷的棋盘是9*9的格⼦ • 默认…...

《征服数据结构》块状链表
摘要: 1,块状链表的介绍 2,块状链表的代码实现(Java和C) 1,块状链表的介绍 前面我们讲过数组和链表,数组具有 O(1)的查询时间,O(N)的删除,O(N)的插入,而链表具…...

leetCode.86. 分隔链表
leetCode.86. 分隔链表 题目思路: 代码 class Solution { public:ListNode* partition(ListNode* head, int x) {auto lh new ListNode(-1), rh new ListNode(-1);auto lt lh, rt rh;for(auto p head; p; p p->next ) {if(p->val < x) {lt lt->…...

Java进阶学习笔记5——Static应用知识:单例设计模式
设计模式: 架构师会使用到设计模式,开发框架,就需要掌握很多设计模式。 在Java基础阶段学习设计模式,将来面试笔试的时候,笔试题目会经常靠到设计模式。 将来会用到设计模式。框架代码中会用到设计模式。 什么是设计…...

Vue 前端加框 给div加红色框框 js实现
实现方式:用getElementsByClassName、createElement、appendChild实现在原有div上添加一个新的div,从而达到框选效果 <template><div><el-button click"addIten">添加</el-button><el-button click"deleteIt…...

Percona Toolkit 神器全攻略(实用类)
Percona Toolkit 神器全攻略(实用类) Percona Toolkit 神器全攻略系列共八篇,前文回顾: 前文回顾Percona Toolkit 神器全攻略 全文约定:$为命令提示符、greatsql>为GreatSQL数据库提示符。在后续阅读中,…...

ARM GIC 和NVIC的区别
ARM GIC(Generic Interrupt Controller)和NVIC(Nested Vectored Interrupt Controller)是两种不同的中断控制器,它们在ARM架构中扮演着重要的角色,但各自有不同的设计和应用场景。 ARM GIC: G…...

CSS文本粒子动画特效之爱心粒子文字特效-Canvas
1. 效果图 2.完整代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><style>body,html {margin: 0;paddin…...

小熊家务帮day5 客户管理模块1 (小程序认证,手机验证码认证等)
客户管理模块 1.认证模块1.1 认证方式介绍1.1.1 小程序认证1.1.2 手机验证码登录1.1.3 账号密码认证 1.2 小程序认证1.2.1 小程序申请1.2.2 创建客户后端工程jzo2o-customer1.2.3 开发部署前端1.2.4 小程序认证流程1.2.4.1 customer小程序认证接口设计Controller层Service层调用…...

Blender 学习笔记(一)快捷键记录
Blender 的快捷键映射非常强大,如果学会将会快速提高工作效率,本文抄自 Blender 4.1 Manual,基于 Blender 4.1,因为自己使用 Windows,所以只记录 Windows 相关快捷键。 全局快捷键 键位作用ctrl0打开文件ctrls保存文…...

ubuntu linux (20.04) 源码编译cryptopp库 - apt版本过旧
下载最新版 https://www.cryptopp.com/#download 编译安装: #下载Cryptopp源码 #git clone https://gitee.com/PaddleGitee/cryptopp.git#进入文件夹 cd cryptopp #编译,多cpu处理 make -j8 #安装,默认路径:/usr/local sudo m…...

机器学习-3-特征工程的重要性及常用特征选择方法
参考特征重要性:理解机器学习模型预测中的关键因素 参考[数据分析]特征选择的方法 1 特征重要性 特征重要性帮助我们理解哪些特征或变量对模型预测的影响最大。 特征重要性是数据科学中一个至关重要的概念,尤其是在建立预测性任务的模型时。想象你正在尝试预测明天是否会下…...

QGis3.34.5工具软件保存样式,软件无反应问题
在使用QGis软件保存SLD样式的时候,每次保存样式,软件都进入无反应状态,导致无法生成样式文件 百度中多次查询问题点,终未能在在3.34.5这个版本上解决问题。 考虑到可能是软件本身问题,于是删除了3.34.5这个版本&#x…...

JavaScript(ES6)入门
ES6 1、介绍 ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript 语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。…...

深入分析 Android Activity (十)
文章目录 深入分析 Android Activity (十)1. Activity 的资源管理1.1 使用资源 ID 访问资源1.2 Drawable 资源1.3 使用 TypedArray 管理资源1.4 使用资源配置 2. Activity 的数据存储2.1 SharedPreferences2.2 文件存储2.3 SQLite 数据库2.4 ContentProvider 3. Activity 的性能…...

考试“挂了“用日语怎么说,柯桥商务日语培训
1、もえる 热衷于……,燃烧 除了“燃烧”,还有“热衷于……”的意思,如“家が燃える(房子着火了)”,“勉強に燃える(热衷于学习)”。 A:今(いま&…...
【机器学习300问】103、简单的经典卷积神经网络结构设计成什么样?以LeNet-5为例说明。
一个简单的经典CNN网络结构由:输入层、卷积层、池化层、全连接层和输出层,这五种神经网络层结构组成。它最最经典的实例是LeNet-5,它最早被设计用于手写数字识别任务,包含两个卷积层、两个池化层、几个全连接层,以及最…...

【代码随想录算法训练营第37期 第二十一天 | LeetCode530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先】
代码随想录算法训练营第37期 第二十一天 | LeetCode530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先 一、530.二叉搜索树的最小绝对差 解题代码C: /*** Definition for a binary tree node.* struct TreeNode {* int val;* …...

2023 年网络等级保护考试题库及答案
一、单项选择题 1.在等保 1.0 的根本要求中,网络设备防护的内容归属于网络安全,在等保 2.0 中将其归属到〔〕。 A 安全通信网络 B 安全区域边界 C 安全计算环境 D 安全治理中心 答案:c 2.应成立指导和治理网络安全工作的委员会或领导小组&…...