当前位置: 首页 > news >正文

基于PostGIS的省域空间相邻检索实践

目录

前言

一、相关空间检索函数

1、ST_touches函数

2、ST_Intersects函数

3、ST_Relate函数

4、区别于对比

二、空间相邻检索实践

1、省域表相关介绍

2、相关省域相邻查询

3、全国各省份邻居排名

三、总结


前言

        在当今数字化时代,地理空间数据的高效管理和精准分析对于众多领域的发展具有至关重要的作用。省域作为国家行政区域的重要组成部分,其内部的空间关系复杂多样,尤其是空间相邻关系,对于区域规划、交通布局、生态研究等诸多方面都有着深远的影响。准确、快速地检索出省域内各地理要素之间的相邻情况,能够为各项决策提供有力支持,从而优化资源配置,推动区域协调发展。

        PostGIS作为一款功能强大的开源对象关系型空间数据库扩展,以其卓越的空间数据存储、管理和分析能力,在地理信息系统(GIS)领域得到了广泛应用。它能够高效地处理各种空间数据类型,支持复杂的空间查询和分析操作,为解决地理空间问题提供了强大的技术支持。基于PostGIS开展省域空间相邻检索实践,不仅可以充分利用其强大的空间分析功能,还能够结合省域丰富的地理空间数据资源,实现高效、精准的空间相邻关系检索。

        本次实践旨在探索如何利用PostGIS高效地实现省域空间相邻检索,通过深入研究PostGIS的空间数据模型、空间查询函数以及相关算法,结合省域实际地理空间数据,构建一套高效、准确、可扩展的空间相邻检索系统。这将为省域空间规划、资源管理、生态保护等众多领域提供有力的技术支撑,同时也为地理空间数据的深度挖掘和应用提供新的思路和方法。通过对实践过程的详细记录和分析,希望能够为相关领域的研究人员和从业者提供有益的参考和借鉴,推动地理空间数据应用的进一步发展。

一、相关空间检索函数

        通常省域的边界信息都是面数据,因此这里的数据类型是两个面数据的相邻求解,即Polygon的相邻计算。在之前的博客中我们曾经介绍了两种空间函数,原文地址如下:基于SpringBoot和PostGIS的世界各国邻国可视化实践 和 基于SpringBoot和PostGIS的云南与缅甸的千里边境线实战。在博客中也曾对st_touches和距离求解的方式进行计算,st_touches本文还会深入介绍,距离的计算也是比较直接简单的。就是根据距离的阈值来确定是否相邻的关系。本节将介绍其它的空间相邻检索函数如st_touches、st_intersects、st_relate函数,介绍其原理和使用场景。

1、ST_touches函数

        首先介绍第一个相邻检索函数,boolean ST_Touches(geometry A, geometry B);

        如果 A 和 B 相交,但它们的内部不相交,则返回 TRUE。 等价地,A和B至少有一个公共点,并且公共点至少位于一个边界内。 对于点/点输入,关系始终为 FALSE,因为点没有边界。在数学术语中:ST_Touches(A, B) ⇔ (Int(A) ⋂ Int(B) = ∅) ∧ (A ⋂ B ≠ ∅)。该函数在以下场景的检索中会返回true。

         使用st_touches函数的空间对象,可以作用于点、线、面以及他们的各种组合中的查询与检索。 如果两个几何图形的边界相交,或者只有一个几何图形的内部与另一个几何图形的边界相交,则ST_Touches(geometry A, geometry B)将返回TRUE。我们可以在PostGIS中来查看一下其函数的定义:

CREATE OR REPLACE FUNCTION "public"."_st_touches"("geom1" "public"."geometry", "geom2" "public"."geometry")RETURNS "pg_catalog"."bool" AS '$libdir/postgis-3', 'touches'LANGUAGE c IMMUTABLE STRICTCOST 10000

2、ST_Intersects函数

        第二个相邻查询函数是相交,boolean ST_Intersects( geometry geomA , geometry geomB );

        对于空间对象而言,面对象也是可以进行相交计算的。 在一些边界没有很好的处理的情况下,比如在使用OSM国界数据与我们的省份信息进行空间相邻分析时,就会出现这种问题。比如全球的国界与云南省的相邻数据,使用st_touches函数是很难进行空间检索的。如果使用st_touches则会返回false,因此在这种情况下,通常我们是采用相交函数来进行空间求解。请注意:ST_Overlaps、ST_Touches、ST_In都隐含着空间交集。如果上述任一项返回TRUE,则这些几何图形在空间上也相交。对于空间相交,不相交意味着FALSE。来看下在PostGIS时空数据库中如何定义相交函数的。

CREATE OR REPLACE FUNCTION "public"."_st_intersects"("geom1" "public"."geometry", "geom2" "public"."geometry")RETURNS "pg_catalog"."bool" AS '$libdir/postgis-3', 'ST_Intersects'LANGUAGE c IMMUTABLE STRICTCOST 10000

3、ST_Relate函数

        想介绍的第三种空间相邻计算函数是:boolean ST_Relate(geometry geomA, geometry geomB, text intersectionMatrixPattern);与前两个函数不太一样的是,在参数的入参中不仅有两个空间对比对象,同时还有一个相交模式参数,即大名鼎鼎的九交参数模型。关于九交参数模型,这里不深入讲解和探讨,感兴趣的大家可以去看看。后续再深入讲解九交模型。

        简单的来介绍这个函数就是,函数允许测试和评估两个几何图形之间的空间(拓扑)关系,如维度扩展 九交模型 (DE-9IM) 所定义。DE-9IM 被指定为 9 元素矩阵,指示两个几何图形的内部、边界和外部之间相交的维度。 它由使用符号“F”、“0”、“1”、“2”的 9 个字符文本字符串表示(例如“FF1FF0102”)。可以通过将相交矩阵与相交矩阵模式进行匹配来测试特定类型的空间关系。 模式可以包含附加符号“T”(表示“交集非空”)和“*”(表示“任何值”)。 常见空间关系由命名函数 ST_Contains、ST_ContainsProperly、ST_Covers、ST_CoveredBy、ST_Crosses、ST_Disjoint、ST_Equals、ST_Intersects、ST_Overlaps、ST_Touches和 ST_Within 提供。 使用显式模式可以一步测试相交、交叉等多种条件。 它还允许测试没有命名空间关系函数的空间关系。 例如,关系“Interior-Intersects”具有 DE-9IM 模式 T********,该模式不由任何命名谓词求值。

        因此可以看到,之前提供了一些简单的空间相邻函数的处理,不同的空间函数只能检索指定的空间关系,如果有更复杂的空间查询要求,那么使用包含九交模型的St_Relate函数将能实现最大的灵活性。

CREATE OR REPLACE FUNCTION "public"."st_relate"("geom1" "public"."geometry", "geom2" "public"."geometry", text)RETURNS "pg_catalog"."bool" AS '$libdir/postgis-3', 'relate_pattern'LANGUAGE c IMMUTABLE STRICTCOST 10000

4、区别于对比

        在实际工作中,ST_TouchesST_Intersects 的主要区别在于它们判断几何对象空间关系的严格程度和应用场景。以下是两者的详细对比和具体应用场景:

        ST_Touches

  • 功能:判断两个几何对象是否至少有一个共同点,但它们的内部不相交。

    • 两个几何对象仅在边界上接触,但内部没有重叠。

    • 对于点/点输入,关系始终为 FALSE,因为点没有边界。

  • 应用场景

    • 用于判断两个几何对象是否相邻,但不重叠。例如,判断两个多边形是否仅在边界上接触。

    • 适用于需要严格区分边界接触和内部重叠的场景,如地理分区的边界分析。

  • 数学定义

    • ST_Touches(A, B) ⇔ (Int(A) ⋂ Int(B) = ∅) ∧ (A ⋂ B ≠ ∅)

    • 即两个几何对象的内部不相交,但它们至少有一个公共点。

        ST_Intersects

  • 功能:判断两个几何对象是否相交,即它们至少有一个共同点。

    • 包括边界和内部的相交,只要两个几何对象有重叠或接触的部分,就会返回 TRUE

  • 应用场景

    • 用于判断两个几何对象是否有任何重叠或接触的部分,包括边界和内部的相交。

    • 适用于需要判断两个几何对象是否重叠或接触的场景,如空间查询和空间分析。

  • 数学定义

    • 只要两个几何对象的边界或内部有重叠或接触的部分,就会返回 TRUE

        具体区别

  • 严格程度

    • ST_Touches 更严格,仅当两个几何对象在边界上接触且内部不相交时返回 TRUE

    • ST_Intersects 更宽松,只要两个几何对象有重叠或接触的部分,无论是边界还是内部,都会返回 TRUE

  • 应用场景

    • ST_Touches 适用于需要严格区分边界接触和内部重叠的场景,如地理分区的边界分析。

    • ST_Intersects 适用于需要判断两个几何对象是否有任何重叠或接触的部分的场景,如空间查询和空间分析。

二、空间相邻检索实践

        在了解了以上的空间相邻检索函数之后,本节将结合一个实际的例子来对空间相邻检索进行使用查询实践,让大家直观的看到不同的查询情况的展示。

1、省域表相关介绍

        作为数据查询的重要空间表,省域表的设计非常重要,这里将分享省域表的逻辑结构,如下所示:

        其对应的数据库物理表结构如下:

 

CREATE TABLE "biz_province" ("id" int8 NOT NULL,"code" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,"name" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,"type" varchar(32) COLLATE "pg_catalog"."default","geom" "geometry",CONSTRAINT "pk_biz_province" PRIMARY KEY ("id")
);CREATE INDEX "idx_biz_province_code" ON "public"."biz_province" USING btree ("code" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
);
CREATE INDEX "idx_biz_province_geom" ON "public"."biz_province" USING gist ("geom" "public"."gist_geometry_ops_2d"
);
COMMENT ON COLUMN "public"."biz_province"."id" IS '主键ID';
COMMENT ON COLUMN "public"."biz_province"."code" IS '省份编码,对应行政区划编码';
COMMENT ON COLUMN "public"."biz_province"."name" IS '省份名称';
COMMENT ON COLUMN "public"."biz_province"."type" IS '类型';
COMMENT ON COLUMN "public"."biz_province"."geom" IS 'geom';

        这里将存储我国所有的省份信息,在navicat或者pgadmin中执行以下的查询条件可以看到以下返回结果集:

2、相关省域相邻查询

        在掌握了以上的空间物理表设计之后,下面我们来看一下如何使用上面的三种方法来进行省域的空间相邻表的检索实现。

        ST_Touches检索(下面以上海市的相邻省份检索)SQL如下:

select * from biz_province where name = '上海市'
union
select t.* from biz_province s,biz_province t where s.name= '上海市'
and ST_Touches(s.geom,t.geom);

        需要说明的是,为了能展示当前省份的信息,因此使用Union查询将本省的信息进行合并。同时为了可以直接看到查询结果,这里以PgAdmin终端为例,展示查询的结果:

        然后点击geometry字段的预览按钮可以预览空间数据:

         ST_Intersects检索(下面以内蒙古自治区的相邻省份检索)SQL如下:

select * from biz_province where name = '内蒙古自治区'
union
select t.* from biz_province s,biz_province t where s.name= '内蒙古自治区'
and ST_Intersects(s.geom,t.geom);

         相交的实例我们以我国最狭长的内蒙古自治区为例,看看它的相邻省份有哪些呢?一共是有8个,下面来看一下空间位置:

        可以看到,内蒙古自治区在空间上与东三省、河北、山西、山西、宁夏、甘肃,确实是一个狭长的省份。 

        ST_Relate检索(下面以四川省的相邻省份检索)SQL如下:

select * from biz_province where name = '四川省'
union
select t.* from biz_province s,biz_province t where s.name = '四川省'
and (ST_Relate(s.geom,t.geom, 'FT*******') or ST_Relate(s.geom,t.geom, 'F**T*****') or ST_Relate(s.geom,t.geom, 'F***T****') 
);

        关于九交模型的参数,这里不进行太多深入的说明,以免绕晕。 可以在地图上看到四川省的邻省也是比较多的。

         天府之国,果然名不虚传。大四川的邻居也是非常多的。足足有7个,仅次于内蒙古自治区和陕西省。

3、全国各省份邻居排名

        为了看看我国各省份的邻居排名,我们使用空间函数来进行一次排名,排名的sql语句如下:

select max(s.code) 编码,max(s.name) 名称,count(1) from biz_province s,biz_province t where 
ST_Touches(s.geom,t.geom) group by s.id order by count desc;

        执行之后可以看到以下查询结果:

 编码    名称    count
150000    内蒙古自治区    8
610000    陕西省    8
510000    四川省    7
130000    河北省    7
360000    江西省    6
340000    安徽省    6
620000    甘肃省    6
410000    河南省    6
420000    湖北省    6
430000    湖南省    6
440000    广东省    6
500000    重庆市    5
520000    贵州省    5
330000    浙江省    5
530000    云南省    4
540000    西藏自治区    4
140000    山西省    4
630000    青海省    4
370000    山东省    4
450000    广西壮族自治区    4
320000    江苏省    4
640000    宁夏回族自治区    3
210000    辽宁省    3
220000    吉林省    3
650000    新疆维吾尔自治区    3
350000    福建省    3
110000    北京市    2
120000    天津市    2
230000    黑龙江省    2
310000    上海市    2
810000    香港特别行政区    1
820000    澳门特别行政区    1

        从以上的查询结果可以看到,内蒙古和陕西的邻居最多,其次是四川和河北。邻居最少的是香港和澳门特别行政区,他们都与广东省相邻。

三、总结

        以上就是本文的主要内容,本次实践旨在探索如何利用PostGIS高效地实现省域空间相邻检索,通过深入研究PostGIS的空间数据模型、空间查询函数以及相关算法,结合省域实际地理空间数据,构建一套高效、准确、可扩展的空间相邻检索系统。通过详细讲解St_touches、st_intersects和St_relate函数,让大家对省域的空间相邻有了更深入的认识。行文仓促,定有许多不足,欢迎各位专家朋友在评论区留言批评指正,不甚荣幸。

        只有站在巨人的肩膀上才能看得更远,博文也参考了其它网友的智慧。原文地址参考如下:

        1、【PostGIS入门】三、空间关系与空间连接。

        2、PostGIS教程九:空间关系。

        3、ST_Touches。

        4、ST_Intersects。

相关文章:

基于PostGIS的省域空间相邻检索实践

目录 前言 一、相关空间检索函数 1、ST_touches函数 2、ST_Intersects函数 3、ST_Relate函数 4、区别于对比 二、空间相邻检索实践 1、省域表相关介绍 2、相关省域相邻查询 3、全国各省份邻居排名 三、总结 前言 在当今数字化时代,地理空间数据的高效管理…...

Java 2024年面试总结(持续更新)

目录 最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三年左右的)。 面试问题(答案是我自己总结的,不一定正确): 总结: 最近趁着金三银四面了五六家公…...

JDK9新特性

文章目录 新特性:1.模块化系统使用模块化module-info.java:exports:opens:requires:provides:uses: 2.JShell启动Jshell执行计算定义变量定义方法定义类帮助命令查看定义的变量:/var…...

性能测试中的数据库连接池优化

目录 一、配置连接池参数 二、配置连接池数量 三、监控连接池 数据库连接池的意义是让连接复用,通过建立一个数据库连接池(缓冲区)以及一套连接的使用,分配,管理策略,使得该连接池中的连接可以得到高效&…...

1. 初识spark

背景: 作为一名开发人员,用内存处理数据是每天都在做的事情。内存处理数据最大的优势就是方便,快捷,可以很快得到结果,但是内存总是有瓶颈的,不管你运行代码的机器有多大的内存,总是有更大规模…...

专业学习|一文了解并实操自适应大邻域搜索(讲解代码)

一、自适应大邻域搜索概念介绍 自适应大邻域搜索(Adaptive Large Neighborhood Search,ALNS)是一种用于解决组合优化问题的元启发式算法。以下是关于它的详细介绍: -自适应大领域搜索的核心思想是:破坏解、修复解、动…...

Redis --- 使用zset处理排行榜和计数问题

在处理计数业务时,我们一般会使用一个数据结构,既是集合又可以保证唯一性,所以我们会选择Redis中的set集合: 业务逻辑: 用户点击点赞按钮,需要再set集合内判断是否已点赞,未点赞则需要将点赞数1…...

排序算法——快速排序

代码仓库: 1037827920/AlgorithmZoo 快速排序 算法步骤 选择基准元素,从数组中选择一个元素作为基准,通常选择方式有: 第一个元素最后一个元素中间元素随机选择 分区操作,将数组元素根据基准分为两部分,…...

有用的sql链接

『SQL』常考面试题(2——窗口函数)_sql的窗口函数面试题-CSDN博客 史上最强sql计算用户次日留存率详解(通用版)及相关常用函数 -2020.06.10 - 知乎 (zhihu.com) 1280. 学生们参加各科测试的次数 - 力扣(LeetCode&…...

手写MVVM框架-构建虚拟dom树

MVVM的核心之一就是虚拟dom树,我们这一章节就先构建一个虚拟dom树 首先我们需要创建一个VNode的类 // 当前类的位置是src/vnode/index.js export default class VNode{constructor(tag, // 标签名称(英文大写)ele, // 对应真实节点children,…...

C++单例模式

单例模式是一种设计模式,它保证一个类只有一个对象。因此单例模式要私有化构造函数,禁用拷贝构造以及赋值重载。同时还要提供一个静态成员函数获取单例对象。 单例模式有两种实现方式:饿汉模式和懒汉模式 饿汉模式:创建静态单例…...

SQL入门到精通 理论+实战 -- 在 MySQL 中学习SQL语言

目录 一、环境准备 1、MySQL 8.0 和 Navicat 下载安装 2、准备好的表和数据文件: 二、SQL语言简述 1、数据库基础概念 2、什么是SQL 3、SQL的分类 4、SQL通用语法 三、DDL(Data Definition Language):数据定义语言 1、操…...

RabbitMQ 可靠性投递

文章目录 前言一、RabbitMQ自带机制1、生产者发送消息注意1.1、事务(Transactions)1.2、发布确认(Publisher Confirms)1.2.1、同步1.2.2、异步 2、消息路由机制2.1、使用备份交换机(Alternate Exchanges)2.…...

Java常见的技术场景面试题

一、单点登录这块怎么实现的? 单点登录概述 单点登录:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统 在以前的时候,一般我们就单系统,所有的功能都在同一个系统上。…...

使用 Postman 进行 API 测试:从入门到精通

使用 Postman 进行 API 测试:从入门到精通 使用 Postman 进行 API 测试:从入门到精通一、什么是 API 测试?二、Postman 简介三、环境搭建四、API 测试流程1. 收集 API 文档2. 发送基本请求示例:发送 GET 请求示例代码(…...

用python实现进度条

前言 在Python中,可以使用多种方式实现进度条。以下是几种常见的进度条格式的实现方法: 1. 使用 tqdm 库 tqdm 是一个非常流行的库,可以轻松地在循环中显示进度条。 from tqdm import tqdm import time# 示例:简单的进度条 fo…...

android 自定义通话录音

在 Android 开发中,实现通话录音功能通常涉及到对系统通话的拦截和录音。由于通话录音涉及到用户隐私和安全性,Android 系统对此有严格的限制和要求。在 Android 10(API 级别 29)及以上版本中,直接访问通话录音功能变得…...

WebSocket——环境搭建与多环境配置

一、前言:为什么要使用多环境配置? 在开发过程中,我们通常会遇到多个不同的环境,比如开发环境(Dev)、测试环境(Test)、生产环境(Prod)等。每个环境的配置和需…...

【自动化办公】批量图片PDF自定义指定多个区域识别重命名,批量识别铁路货物运单区域内容改名,基于WPF和飞桨ocr深度学习模型的解决方案

项目背景介绍 铁路货运企业需要对物流单进行长期存档,以便后续查询和审计。不同的物流单可能包含不同的关键信息,通过自定义指定多个区域进行识别重命名,可以使存档的图片文件名具有统一的规范和明确的含义。比如,将包含货物运单…...

在线教程丨YOLO系列10年更新11个版本,最新模型在目标检测多项任务中达SOTA

YOLO (You Only Look Once) 是计算机视觉领域中最具影响力的实时目标检测算法之一,以其高精度与高效性深受业界青睐,广泛应用于自动驾驶、安防监控、医疗影像等领域。 该模型最早于 2015 年由华盛顿大学研究生 Joseph Redmon 发布,开创了将目…...

c++可变参数详解

目录 引言 库的基本功能 va_start 宏: va_arg 宏 va_end 宏 va_copy 宏 使用 处理可变参数代码 C11可变参数模板 基本概念 sizeof... 运算符 包扩展 引言 在C编程中,处理不确定数量的参数是一个常见的需求。为了支持这种需求,C标准库提供了 &…...

Ubuntu安装VMware17

安装 下载本文的附件,之后执行 sudo chmod x VMware-Workstation-Full-17.5.2-23775571.x86_64.bundle sudo ./VMware-Workstation-Full-17.5.2-23775571.x86_64.bundle安装注意事项: 跳过账户登录的办法:断开网络 可能出现的问题以及解决…...

在Debian 12上安装VNC服务器

不知道什么标题 可以看到这个文章是通过豆包从国外网站copy的,先这样写着好了,具体的我有时间再补充,基本内容都在这里了。 在Debian 12上安装VNC服务器 简介 VNC(Virtual Network Computing,虚拟网络计算&#xf…...

设计模式Python版 外观模式

文章目录 前言一、外观模式二、外观模式示例三、抽象外观类四、抽象外观类示例 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&am…...

Selenium 浏览器操作与使用技巧——详细解析(Java版)

目录 一、浏览器及窗口操作 二、键盘与鼠标操作 三、勾选复选框 四、多层框架/窗口定位 五、操作下拉框 六、上传文件操作 七、处理弹窗与 alert 八、处理动态元素 九、使用 Selenium 进行网站监控 前言 Selenium 是一款非常强大的 Web 自动化测试工具,能够…...

论文解读:《基于TinyML毫米波雷达的座舱检测、定位与分类》

摘要 本文提出了一种实时的座舱检测、定位和分类解决方案,采用毫米波(mmWave)雷达系统芯片(SoC),CapterahCAL60S344-AE,支持微型机器学习(TinyML)。提出了波束距离-多普勒…...

e2studio开发RA2E1(5)----GPIO输入检测

e2studio开发RA2E1.5--GPIO输入检测 概述视频教学样品申请硬件准备参考程序源码下载新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置GPIO口配置按键口配置按键口&Led配置R_IOPORT_PortRead()函数原型R_IOPORT_PinRead()函数原型代码 概述 本篇文章主要介绍如何…...

数据结构:队列篇

图均为手绘,代码基于vs2022实现 系列文章目录 数据结构初探: 顺序表 数据结构初探:链表之单链表篇 数据结构初探:链表之双向链表篇 链表特别篇:链表经典算法问题 数据结构:栈篇 文章目录 系列文章目录前言一.队列的概念和结构1.1概念一、动态内存管理优势二、操作效率与安全性…...

idea中git的简单使用

提交,推送直接合并 合到哪个分支就到先切到哪个分支...

Java中的object类

1.Object类是什么? 🟪Object 是 Java 类库中的一个特殊类,也是所有类的父类(超类),位于类继承层次结构的顶端。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。 🟦Java里面除了Object类,所有的…...

html2canvas绘制页面并生成图像 下载

1. 简介 html2canvas是一个开源的JavaScript库,它允许开发者在用户的浏览器中直接将HTML元素渲染为画布(Canvas),并生成图像。以下是对html2canvas的详细介绍: 2. 主要功能 html2canvas的主要功能是将网页中的HTML元…...

Certum OV企业型通配符SSL

随着网络攻击手段的不断演变,仅仅依靠HTTP协议已无法满足现代企业对数据安全的需求。SSL证书,特别是经过严格验证的组织验证型SSL证书,成为了保护网站数据传输安全、提升用户信任度的标配。 一、Certum OV企业型通配符SSL概述 Certum&#…...

2024年Web前端最新Java进阶(五十五)-Java Lambda表达式入门_eclipse lambda(1),面试必备

对象篇 模块化编程-自研模块加载器 开源分享:【大厂前端面试题解析核心总结学习笔记真实项目实战最新讲解视频】 Arrays.sort(players, sortByName); // 1.3 也可以采用如下形式: Arrays.sort(players, (String s1, String s2) -> (s1.compareTo(s2))); ??其…...

JVM 四虚拟机栈

虚拟机栈出现的背景 由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多…...

V103开发笔记1-20250113

2025-01-13 一、应用方向分析 应用项目: PCBFLY无人机项目(包括飞控和手持遥控器); 分析移植项目,应用外设资源包括: GPIO, PWM,USART,GPIO模拟I2C/SPI, ADC,DMA,USB等; 二、移植项目的基本…...

Page Assist - 本地Deepseek模型 Web UI 的安装和使用

Page Assist Page Assist是一个开源的Chrome扩展程序,为本地AI模型提供一个直观的交互界面。通过它可以在任何网页上打开侧边栏或Web UI,与自己的AI模型进行对话,获取智能辅助。这种设计不仅方便了用户随时调用AI的能力,还保护了…...

Cookie及Session---笔记

目录 Cookiecookie简介cookiesession的认证方式tpshop完整登录实现-cookie Sessionsession简介session自动管理cookietpshop完整登录实现-sessioncookie和session的区别获取响应结果指定内容 Cookie cookie简介 工程师针对HTTP协议是无连接无状态特性所设计的一种技术&#x…...

【Block总结】DASI,多维特征融合

论文信息 HCF-Net(Hierarchical Context Fusion Network)是一种新提出的深度学习模型,专门用于红外小目标检测。该论文于2024年3月16日发布,作者包括Shibiao Xu、ShuChen Zheng等,主要研究机构为北京邮电大学。该模型…...

LabVIEW的智能电源远程监控系统开发

在工业自动化与测试领域,电源设备的精准控制与远程管理是保障系统稳定运行的核心需求。传统电源管理依赖本地手动操作,存在响应滞后、参数调节效率低、无法实时监控等问题。通过集成工业物联网(IIoT)技术,实现电源设备…...

4.PPT:日月潭景点介绍【18】

目录 NO1、2、3、4​ NO5、6、7、8 ​ ​NO9、10、11、12 ​ 表居中或者水平/垂直居中单元格内容居中或者水平/垂直居中 NO1、2、3、4 新建一个空白演示文稿,命名为“PPT.pptx”(“.pptx”为扩展名)新建幻灯片 开始→版式“PPT_素材.doc…...

《迪拜AI展:探寻中东人工智能发展的璀璨新篇》

迪拜:AI 浪潮下的闪耀明珠 迪拜,这座位于阿拉伯半岛东部、波斯湾东南岸的城市,犹如一颗璀璨的明珠,在中东地区散发着独特的魅力。它是阿拉伯联合酋长国的第二大城市,也是迪拜酋长国的首府 ,凭借优越的地理位…...

axios如何利用promise无痛刷新token

目录 需求 需求解析 实现思路 方法一: 方法二: 两种方法对比 实现 封装axios基本骨架 instance.interceptors.response.use拦截实现 问题和优化 如何防止多次刷新token 同时发起两个或以上的请求时,其他接口如何重试 最后完整代…...

R语言 | 使用 ComplexHeatmap 绘制热图,分区并给对角线分区加黑边框

目的:画热图,分区,给对角线分区添加黑色边框 建议直接看0和4。 0. 准备数据 # 安装并加载必要的包 #install.packages("ComplexHeatmap") # 如果尚未安装 library(ComplexHeatmap)# 使用 iris 数据集 #data(iris)# 选择数值列&a…...

TensorFlow 简单的二分类神经网络的训练和应用流程

展示了一个简单的二分类神经网络的训练和应用流程。主要步骤包括: 1. 数据准备与预处理 2. 构建模型 3. 编译模型 4. 训练模型 5. 评估模型 6. 模型应用与部署 加载和应用已训练的模型 1. 数据准备与预处理 在本例中,数据准备是通过两个 Numpy 数…...

蓝桥杯备考:模拟算法之字符串展开

P1098 [NOIP 2007 提高组] 字符串的展开 - 洛谷 | 计算机科学教育新生态 #include <iostream> #include <cctype> #include <algorithm> using namespace std; int p1,p2,p3; string s,ret; void add(char left,char right) {string tmp;for(char ch left1;…...

[创业之路-282]:《产品开发管理-方法.流程.工具 》-1- 优秀研发体系的特征、IPD关注的4个关键要素、IPD体系的7个特点

目录 一、优秀研发体系的特征 二、IPD关注的4个关键要素 1. 组织管理 2. 市场管理 3. 流程管理 4. 产品管理 三、IPD体系的7个特点 1、产品开发是投资行为&#xff1a; 2、基于市场的产品研发&#xff1a; 3、平台化开发&#xff0c;大平台&#xff0c;小产品&#x…...

Node.js 与 PostgreSQL 集成:深入 pg 模块的应用与实践

title: Node.js 与 PostgreSQL 集成:深入 pg 模块的应用与实践 date: 2025/2/5 updated: 2025/2/5 author: cmdragon excerpt: 随着 JavaScript 在服务器端编程中的兴起,Node.js 已成为构建高性能网络应用程序的重要平台。PostgreSQL 则以其强大的特性以及对复杂数据结构的…...

【Uniapp-Vue3】从uniCloud中获取数据

需要先获取数据库对象&#xff1a; let db uniCloud.database(); 获取数据库中数据的方法&#xff1a; db.collection("数据表名称").get(); 所以就可以得到下面的这个模板&#xff1a; let 函数名 async () > { let res await db.collection("数据表名称…...

LeetCode 0090.子集 II:二进制枚举 / 回溯

【LetMeFly】90.子集 II&#xff1a;二进制枚举 / 回溯 力扣题目链接&#xff1a;https://leetcode.cn/problems/subsets-ii/ 给你一个整数数组 nums &#xff0c;其中可能包含重复元素&#xff0c;请你返回该数组所有可能的 子集&#xff08;幂集&#xff09;。 解集 不能 …...

Pytest+selenium UI自动化测试实战实例

今天来说说pytest吧&#xff0c;经过几周的时间学习&#xff0c;有收获也有疑惑&#xff0c;总之最后还是搞个小项目出来证明自己的努力不没有白费。 环境准备 1 确保您已经安装了python3.x 2 配置python3pycharmselenium2开发环境 3 安装pytest库pip install p…...