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

postgis和地理围栏

postgis

postgis是pg数据库的一个插件,除原数据类型外(int varchar)、新增了空间数据类型(geography和geometry)。比如我们新建一张道路表road(字段有名称varchar、建设时间timestamp、地理位置geometry),可以将道路名字、建设时间存进去,同时把道路的位置坐标和使用的坐标系存到一个geometry类型字段。再建一张建筑表存建筑位置,这样就能利用postgis提供的函数分析马路附近有哪些建筑这类问题。

geometry是几何类型,基础是平面,平面上两点之间的最短路径是直线。几何函数(面积、距离、长度、交点等)是使用线性向量和笛卡尔平面计算的。这简化了实施并运行得更快,但对于地球球面以上的数据是不准确的。它可以存地理坐标系数据,只是计算大范围计算精度有局限,更适合选择合适的投影坐标系存平面坐标。

geography地理数据类型基于球面模型。球体上两点之间的最短路径是一个大圆弧。地理上的函数(面积、距离、长度、交点等)是使用球体上的弧计算的。通过考虑世界的球体形状,函数可提供更准确的结果。

人员设备demo表

用4326二维地理坐标系(只有经纬度),制作一份地图,导入pg,表结构如下

CREATE TABLE public.demo_building (

id int8 NOT NULL,

geom public.geometry(multipolygonzm, 4326) NULL,

"name" varchar(10) NULL,

CONSTRAINT demo_building_pkey PRIMARY KEY (id)

);

CREATE TABLE public.demo_person (

id int8 NOT NULL,

geom public.geometry(pointzm, 4326) NULL,

"name" varchar(10) NULL,

CONSTRAINT demo_person_pkey PRIMARY KEY (id)

);

查询设备最近的人员

select

person ."name" ,

ST_Distance(building.geom, person.geom)

from

demo_building building,

demo_person person

where

building."name" = '设备1'

ORDER BY ST_Distance(building.geom, person.geom) asc

-- 基于索引的KNN查询

select

person ."name"

from

demo_person person

order by person.geom <-> (select building.geom from demo_building building where building."name" = '设备1')

qgis使用“要素之间最短线”,源图层为building,目标图层为person,可绘制最短线,打开属性表可看距离

判断人员是否在围栏内

--距离原点指定0.5范围内的人员,圆形围栏

select

person.geom ,

person ."name" ,

person .geom <-> 'SRID=4326;POINT Z(-0.764265422077925 -0.0342836850649348 0)'::geometry as dist

from

demo_person person

where person .geom <-> 'SRID=4326;POINT Z(-0.764265422077925 -0.0342836850649348 0)'::geometry <= 0.5

--在指定多边形范围内的人,在矿工作区内的人,多边形围栏

select

*

from

demo_person person

where

ST_Contains((select building .geom from demo_building building where building ."name" = '矿工作区')::geometry,person.geom);

--在指定多边形边上的人,在高坡工作区边上的人,围栏边上

select

*

from

demo_person person

where

ST_Intersects((select building .geom from demo_building building where building ."name" = '高坡工作区')::geometry,person.geom);

聚合区域人员数量

--查询指定范围内的人员,在矿工作区内的人员数量

select count(1) from demo_person person where ST_Within(person.geom,(select building .geom from demo_building building where building ."name" = '矿工作区')::geometry);

相关文章:

postgis和地理围栏

postgis postgis是pg数据库的一个插件&#xff0c;除原数据类型外(int varchar)、新增了空间数据类型(geography和geometry)。比如我们新建一张道路表road(字段有名称varchar、建设时间timestamp、地理位置geometry)&#xff0c;可以将道路名字、建设时间存进去&#xff0c;同…...

《鸿蒙系统AI技术:筑牢复杂网络环境下的安全防线》

在当今数字化时代&#xff0c;复杂网络环境给智能系统带来了诸多安全挑战&#xff0c;而鸿蒙系统中的人工智能技术却展现出强大的安全保障能力&#xff0c;为用户在复杂网络环境中的安全保驾护航。 微内核架构&#xff1a;安全基石 鸿蒙系统采用微内核架构&#xff0c;将核心…...

SQL SERVER__RSN 恢复的深入解析

1. RSN 的工作原理 RSN 是 SQL Server 内部用于跟踪和管理备份和恢复操作顺序的编号。每次数据库备份&#xff08;包括完整备份、差异备份和事务日志备份&#xff09;都会生成一个唯一的 RSN。SQL Server 在恢复过程中使用 RSN 来确保备份文件按正确的顺序应用&#xff0c;从而…...

面试加分项:Android Framework PMS 全面概述和知识要点

在Android面试时,懂得越多越深android framework的知识,越为自己加分。 目录 第一章:PMS 基础知识 1.1 PMS 定义与工作原理 1.2 PMS 的主要任务 1.3 PMS 与相关组件的交互 第二章:PMS 的核心功能 2.1 应用安装与卸载机制 2.2 应用更新与版本管理 2.3 组件管理 第…...

Http协议封装

Myhttp封装http协议 源代码 #include <iostream> #include <cstring> #include <string> #include <thread> #include <atomic> #include <fstream> // 添加文件操作头文件#ifdef _WIN32 #include <winsock2.h> #include <ws2t…...

el-date-picker 禁用一个月前、一个月后(当天之后)的时间 datetimerange

文章目录 功能需求今天是 2025-01-09示例1示例2 代码 Vue2 功能需求 时间范围选择器&#xff0c;最大时间选择尺度为一个月。 今天是 2025-01-09 示例1 选择 2025-01-02 日 禁用未来日期&#xff08;2025-01-09之后日期&#xff09; 禁用上月2号&#xff08;31日之前&#…...

【C】编译与链接

在本文章里面&#xff0c;我们讲会讲解C语言程序是如何从我们写的代码一步步变成计算机可以执行的二进制指令&#xff0c;并最终执行的。C语言程序运行主要包括两大步骤 -- 编译和链接&#xff0c;接下来我们就来一一讲解。 目录 1 翻译环境和运行环境 2 翻译环境 1&#…...

Github上传项目

写在前面&#xff1a; 本次博客仅仅是个人学习记录&#xff0c;不具备教学作用。内容整理来自网络&#xff0c;太多了&#xff0c;所以就不放来源了。 在github页面的准备&#xff1a; 输入标题。 往下滑&#xff0c;创建 创建后会跳出下面的页面 进入home就可以看到我们刚…...

webrtc之rtc::ArrayView<const uint8_t>

rtc::ArrayView<const uint8_t> 是 WebRTC&#xff08;或其他基于 rtc 命名空间的库&#xff09;中常见的一个类型&#xff0c;它通常用于表示一块 只读的内存区域&#xff0c;该内存区域由一系列 uint8_t 类型&#xff08;无符号 8 位整数&#xff09;元素组成。 1. rt…...

Zemax 序列模式下的扩束器

扩束器结构原理 扩束器用于增加准直光束&#xff08;例如激光束&#xff09;的直径&#xff0c;同时保持其准直。它通常用于激光光学和其他需要修改光束大小或发散度的应用。 在典型的扩束器中&#xff0c;输入光束是准直激光器&#xff0c;或光束进入第一个光学元件。当光束开…...

Flink系统知识讲解之:如何识别反压的源头

Flink系统知识之&#xff1a;如何识别反压的源头 什么是反压 Ufuk Celebi 在一篇古老但仍然准确的文章中对此做了很好的解释。如果您不熟悉这个概念&#xff0c;强烈推荐您阅读这篇文章。如果想更深入、更低层次地了解该主题以及 Flink 网络协议栈的工作原理&#xff0c;这里有…...

RK3568平台(USB篇)禁用USB端口

一.linux中怎样查看usb的端口号 在USB口插入U盘: [ 198.141319][ T106] usb 3-1.3: new SuperSpeed Gen 1 USB device number 5 using xhci-hcd [ 198.161695][ T106] usb 3-1.3: New USB device found, idVendor=0781, idProduct=5591, bcdDevice= 1.00 [ 198.161721]…...

洛谷 P3000 [USACO10DEC] Cow Calisthenics G

思路 题目要求断若干条边后形成的连通块中&#xff0c;最大的直径最小&#xff0c;很明显的二分。关键就在于如何写 c h e c k check check 函数了。 可以用 d f s dfs dfs 来判断要断哪条边。 一、 d [ u ] d[u] d[u] 定义 设 d [ u ] d[u] d[u] 为从 u u u 出发到子树…...

Web渗透测试之XSS跨站脚本攻击 盲打 详解

目录 XSS盲打 什么是盲打: 盲打主要目的 XSS盲打 什么是盲打: 发现某个页面有xss漏洞 但是注入后没看到效果 而是在其它页面进行xss显示的效果 这种就叫盲打. 我注册了一个网站的用户 注册页面存在xss漏洞跳转到首页 看不到注册信息的输出 当管理员打开页面查看什么用户…...

经典编程题:服务器广播

题目描述&#xff1a; 服务器连接方式包括直接相连&#xff0c;间接连接。A 和 B 直接连接&#xff0c;B 和 C 直接连接&#xff0c;则 A 和 C 间接连接。直接连接和间接连接都可以发送广播。 给出一个 N*N 数组&#xff0c;代表 N 个服务器&#xff0c;matrix[i][j]1&#xf…...

【网络协议】静态路由详解

网络中的路由器通过以下两种方式之一发现远程网络&#xff1a; 静态配置路由动态路由协议 在本文&#xff0c;我们将学习关于静态路由的各种概念&#xff0c;例如如何配置静态路由、路由表如何进行决策、路由接口等相关知识。 文章目录 引言直连网络静态路由路由表原则原则1原…...

朝天椒USB服务器在银泰证券虚拟化超融合场景的应用案例

在数字化浪潮席卷金融行业的今天&#xff0c;银泰证券作为业内知名的金融机构&#xff0c;始终致力于提升业务运营效率与数据安全性。面对虚拟化超融合场景下各种认证U盾的管理挑战&#xff0c;银泰证券选择了朝天椒USB服务器作为其解决方案&#xff0c;成功实现了U盾在虚拟机中…...

.NET framework、Core和Standard都是什么?

对于这些概念一直没有深入去理解&#xff0c;以至于经过.net这几年的发展进化&#xff0c;概念越来越多&#xff0c;越来越梳理不容易理解了。内心深处存在思想上的懒惰&#xff0c;以为自己专注于Unity开发就好&#xff0c;这些并不属于核心范畴&#xff0c;所以对这些概念总是…...

FairGuard游戏安全2024年度报告

导 读&#xff1a;2024年&#xff0c;国内游戏市场实际销售收入3257.83亿元&#xff0c;同比增长7.53%&#xff0c;游戏用户规模6.74亿人&#xff0c;同比增长0.94%&#xff0c;市场收入与用户规模双双实现突破&#xff0c;迎来了历史新高点。但游戏黑灰产规模也在迅速扩大&…...

JetBrains IDEs和Visual Studio Code的对比

JetBrains IDEs和Visual Studio Code的对比 JetBrains IDEs是捷克JetBrains公司开发的一系列集成开发环境(IDE)。以下是具体介绍:IntelliJ IDEA是JetBrains 公司的一款产品 主要产品 IntelliJ IDEA:一款功能强大且广泛应用的Java集成开发环境,有开源免费的社区版和商业收…...

域名解析失败可能会对网站 SEO 产生什么影响

域名解析失败可能会对网站 SEO 产生什么影响 问题分析&#xff1a;域名解析失败的现象及其影响 域名解析失败是一个相对常见的网络问题&#xff0c;它通常指的是当你输入一个域名时&#xff0c;浏览器无法将这个域名正确解析为对应的IP地址&#xff0c;导致无法访问网站。这种…...

参数党VS体验派?雅马哈、卡西欧、费森4款热门电钢琴型号终极对决,结果有点意外!

你是否也有这样的时刻&#xff1f;练习时间在不断累积&#xff0c;指法日渐熟练&#xff0c;可弹奏出的声音却依然显得机械、平淡&#xff0c;甚至有点“假”。那种在琴行试弹顶级三角钢琴时&#xff0c;指尖与琴键、琴弦与空气共鸣所带来的微妙震颤与心灵悸动&#xff0c;在自…...

掌握Makefile:从基础到高级的自动化构建指南,依托Java和百度地图实现长沙市热门道路与景点实时路况检索的实践探索。

make与Makefile基础概念 Make是Linux/Unix系统中用于自动化构建程序的工具&#xff0c;通过读取Makefile文件来执行编译、链接等操作。Makefile定义了项目文件的依赖关系及构建规则&#xff0c;避免重复编译未修改的源代码。 Makefile的核心由三部分组成&#xff1a; 目标(Targ…...

OpenClaw故障模拟:gemma-3-12b-it在断网环境下的降级处理方案

OpenClaw故障模拟&#xff1a;gemma-3-12b-it在断网环境下的降级处理方案 1. 为什么需要关注断网场景下的容灾设计 上周我在调试一个基于OpenClaw的自动化日报生成系统时&#xff0c;遇到了一个意外情况&#xff1a;网络突然中断导致整个流程卡死。这让我意识到&#xff0c;在…...

中小卖家最怕买“大而全”,真正需要的是“刚刚好”的自动化方案

很多中小卖家一听到“AI自动化”“全链路智能体”这些词&#xff0c; 心里会先紧张一下。 不是不感兴趣&#xff0c; 而是怕另一个问题&#xff1a; 看起来很强&#xff0c;但太大了&#xff1b; 功能很多&#xff0c;但太重了&#xff1b; 概念很全&#xff0c;但不一定适合自…...

OpenClaw调试技巧:Phi-3-vision-128k-instruct视觉任务失败原因分析

OpenClaw调试技巧&#xff1a;Phi-3-vision-128k-instruct视觉任务失败原因分析 1. 问题背景与现象描述 上周我在尝试用OpenClaw对接Phi-3-vision-128k-instruct模型处理一组产品截图时&#xff0c;遇到了令人困惑的识别失败问题。明明人眼能清晰辨认的界面元素&#xff0c;模…...

LIS2MDL磁力计驱动开发:SPI/I²C底层实现与嵌入式集成

1. LIS2MDL磁力计驱动库技术解析&#xff1a;面向嵌入式系统的SPI/IC底层实现与工程应用1.1 器件定位与工程价值LIS2MDL是意法半导体&#xff08;STMicroelectronics&#xff09;推出的超低功耗、高精度三轴磁力计传感器&#xff0c;采用紧凑型3mm3mm1mm LGA-12封装&#xff0c…...

保姆级教程:用Vivado MIG IP核搞定DDR3读写仿真(附AXI4波形分析)

从零掌握Vivado MIG IP核&#xff1a;DDR3读写仿真与AXI4协议深度解析 刚接触Xilinx FPGA的工程师第一次打开MIG IP核配置界面时&#xff0c;往往会被密密麻麻的参数选项吓到——时钟设置、AXI接口、地址映射、时序约束&#xff0c;每个环节都可能成为项目推进的拦路虎。本文将…...

MATLAB语音识别 matlab语音识别,可以识别数字0-9,有gui界面,注释齐全,有报告

MATLAB语音识别 matlab语音识别&#xff0c;可以识别数字0-9&#xff0c;有gui界面&#xff0c;注释齐全&#xff0c;有报告。&#xff08;本程序测试版本为Matlab 2019b&#xff0c;低于此版本的请安装新版&#xff0c;以免无法运行&#xff09; 链接为电子资料&#xff0c;一…...

HJ166 讨厌鬼进货

题目题解(40)讨论(20)排行 入门 通过率&#xff1a;61.91% 时间限制&#xff1a;1秒 空间限制&#xff1a;256M 知识点贪心 校招时部分企业笔试将禁止编程题跳出页面&#xff0c;为提前适应&#xff0c;练习时请使用在线自测&#xff0c;而非本地IDE。 描述 讨厌鬼需要采…...