pg数据库postgis扩展相关技术简介

postgis-note

pg数据库postgis扩展相关技术简介

简介

PostGIS是在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力的开源GIS数据库。依托于PostgreSQL的两个重要特性:Geometry对象、Gist索引。

webgis技术路线

在这里插入图片描述

Geometry对象

Geometry(几何对象类型)是PG的一个基本存储类型,PostGIS的空间数据都会以Geometry的形式存储在PostgreSQL里,本质是个二进制对象。

geometrystr保存多边形各点坐标位置,在页面上各点连线形成图斑展示。例:
POLYGON ((13798650 4826450, 13812600 4827600, 13798100 4813550, 13802450 4813800, 13807600 4814350, 13804700 4813000, 13811400 4812900, 13813400 4817500, 13810000 4818350, 13813400 4813900, 13811750 4820300, 13807500 4828350, 13805000 4828000, 13802750 4827650, 13798650 4826450))

Gist索引

Gist(Generalized Search Tree),通用搜索树,本身是索引框架。PG针对Geometry对象已经写好了一套Gist索引,用于空间检索。空间索引不像B树索引那样提供精确的结果,而是提供近似的结果。Gist的索引建立依赖于聚合运算(聚合运算的实现接口PG也开放出来了,用户甚至可以自己写),适合多维数据类型和集合数据类型。

地理坐标系GCS

SRS:空间参照系,SRID:空间参照标识符。在gis数据库定义Geometry类型时需传入SRID指定坐标系类型。不同的坐标系数据直接不能混用,需要额外使用函数做转换。

投影坐标系PGS

在平面地图上绘制数据需要PCS。在GIS中,PGS是依赖于GCS的,投影是用一定的数据算法如高斯投影将球体坐标转换成平面坐标。

并行计算

修改$PGDATA/postgresql.conf配置文件,配置并行地理计算,加速空间查询,优化性能。

地图纠偏

服务商提供的地图一般出于数据安全考虑,经纬度故意出现偏差,需要使用纠偏算法修正。

高程模型

数字高程模型(Digital Elevation Model),简称DEM,是通过有限的地形高程数据实现对地面地形的数字化模拟。引入高程模型可以更加准确的计算出位置信息。

POI

Point of interesting。地图上任何非地理意义的有意义的点:比如商店,医院,车站等。

web gis

Shapefile

在gis软件出现之前,平面文件Shapefile一直是空间数据存储和交互的标准数据格式。

地图瓦片

地图瓦片是包含了一系列比例尺、一定地图范围内的地图切片文件。主要使用两种方式,一种是传统的栅格瓦片,另外一种是新出的矢量瓦片(Vector Tiles)。

栅格瓦片

栅格瓦片提前渲染,对客户端性能要求低,但瓦片占用空间高,无法动态调整地图比例。

矢量瓦片

矢量切片技术继承了矢量数据和切片地图的双重优势。
mapbox是通用的矢量瓦片数据标准。
传输时MIME类型应该设置为application/vnd.mapbox-vector-tile
矢量切片常见的形式右:GeoJSON(.json文件)、TopoJSON和MapBox Vector Tile(.mvt文件)。

GeoJSON

GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式。以文本形式来表示不同地理空间。可以使用GeoTools将GeoJson文件导入到PostGis表的Geometry类型字段。

MVT

.mvt矢量瓦片压缩率更高,体积更小。没有经纬度概念,保存的是格网相对坐标,来构建几何图形信息。也可用Google的Protocol Buffer对.mvt文件进行编码压缩为二进制生成.pbf文件

动态矢量瓦片

动态矢量瓦片不再使用工具线下进行预先切片,采用即时浏览即时传输矢量瓦片,提升大规模空间数据的前端渲染流畅度。

MapBox GL是MapBox提供的JavaScript SDK。请求路径例:
http://ip:port/getMvt/{z}/{x}/{y}
后台根据接收到的z、x、y这三个值计算对应切片的边界范围,可以使用postgis的ST_AsMVT聚合函数返回该范围的mvt(Mapbox Vector Tiles) 二进制矢量瓦片给前端。
SELECT ST_AsMVT(mvtgeom.*)
FROM (
  SELECT ST_AsMVTGeom(geom,bound) AS geom, column1, column2
  FROM myTable
) mvtgeom
数据加密

保护瓦片数据安全。

三维gis

地图服务器

OSM

开放街道图(OpenStreetMap,简称OSM)是一个网上地图协作计划,一般用.osm文件存储地图信息。

OGC

OGC开放地理空间信息联盟(Open Geospatial Consortium),制定了数据和服务的一系列标准,GIS厂商按照这个标准进行开发可保证空间数据的互操作。

地图服务分类

对于矢量切片,目前OGC没有提供这样的服务。但是像GeoServer等地图服务器提供了矢量切片的扩展,可以用工具对自己的矢量数据进行切片,然后导出GeoJSON格式的数据加载到地图中。
WMS服务,图片格式的地图web map service。实时渲染,通常用作预览数据。
WFS服务,网络要素服务web feature service,使用矢量图形。
WMTS服务,网络地图切片服务web map tile service,对图片进行切片后的服务。
TMS服务,tiled map service,瓦片地图服务。

地图底图和图层

地图内是由各种不同的图层来叠加显示,形成整个三维地图场景。包括道路网、河道、行政区划等。可以使用工具绘制、提取、添加自定义图层。实践中,地图的正常的组织形式为:地图=底图图层+行业数据叠加层。

GeoServer地图服务

是OpenGIS Web服务器规范的J2EE实现,利用GeoServer可以方便的发布地图数据,可以将地图数据切成各种地图瓦片。

osm2pgsql

安装使用osm2pgsql工具,将osm地图文件导入PostGIS数据库,会自动按图层生成图层表。

GeoTools

开源的Java GIS工具包,可利用它来开发符合标准的地理信息系统。GeoTools提供了OGC规范的一个实现来作为他们的开发。

大数据gis

HBase Ganos是阿里云的时空大数据引擎系统。接口数据返回GeoJSON格式。

参考

知乎PostGIS教程
使用switch2osm搭建OSM地图服务
OSM地图本地发布
阿里云数据可视化平台

postgis sql demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/944134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Html——10 关键字和描述

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>淘宝网</title><meta name"keywords" content"我要自学网,自学HTML,自学CSS"/><meta name"description" content"要设置…

【原创学习笔记】近期项目中使用的西门子V20变频器总结(上篇)

现场V20 22kW变频器如图所示 进线分别为L1,L2,L3,PE线&#xff0c;出现分别为U,V,W接电机 在西门子官网查询手册后&#xff0c;查询可知可以通过多种方式控制变频器&#xff0c;比如&#xff1a;面板&#xff08;BOP&#xff09;控制&#xff0c;端子&#xff08;NPN/PNP&…

Exchange ProxyShell 攻击链利用详解

目录 ProxyShell CVE-2021-34473 SSRF ProxyShell 详细复现 ProxyShell 一键利用脚本 攻击者利用 ProxyShell 漏洞可绕过相关权限验证,进而配合其他漏洞可执行任意代码,控制Microsoft Exchange Server。 ProxyShell攻击链利用使用了以下漏洞: CVE-2021-34473 一个 SSR…

算法练习——模拟题

前言&#xff1a;模拟题的特点在于没有什么固定的技巧&#xff0c;完全考验自己的代码能力&#xff0c;因此有助于提升自己的代码水平。如果说一定有什么技巧的话&#xff0c;那就是有的模拟题能够通过找规律来简化算法。 一&#xff1a;替换所有问号 题目要求&#xff1a; 解…

ES 磁盘使用率检查及处理方法

文章目录 1. 检查原因2. 检查方法3. 处理方法3.1 清理数据3.2 再次检查磁盘使用率 1. 检查原因 磁盘使用率在 85%以下&#xff0c;ES 可正常运行&#xff0c;达到 85%及以上会影响 PEIM 数据存储。 在 ES 磁盘分配分片控制策略中&#xff0c;为了保护数据节点的安全&#xff0…

leetcode 面试经典 150 题:螺旋矩阵

链接螺旋矩阵题序号54题型二维数组&#xff08;矩阵&#xff09;解题方法模拟路径法难度中等熟练度✅✅✅ 题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3…

汽车CAN通信逻辑与LabVIEW开发

CAN通信的核心概念 CAN&#xff08;Controller Area Network&#xff09;是一种多主通信协议&#xff0c;广泛应用于汽车电子系统中&#xff0c;用于控制单元之间的高效通信。 ​ 消息优先级&#xff1a;每个CAN帧包含唯一的标识符&#xff08;ID&#xff09;&#xff0c;ID的…

CI/CD是什么?

CI/CD 定义 CI/CD 代表持续集成和持续部署&#xff08;或持续交付&#xff09;。它是一套实践和工具&#xff0c;旨在通过自动化构建、测试和部署来改进软件开发流程&#xff0c;使您能够更快、更可靠地交付代码更改。 持续集成 (CI)&#xff1a;在共享存储库中自动构建、测试…

Kubernetes之NodeSelector与NodeName实战

目录 目标 版本 官网 概述 实战 NodeName实战 NodeSelector实战 目标 通过配置NodeSelector与NodeName实现Pod运行&#xff08;或优先运行&#xff09;在我们期望的节点之上。了解这两种实现方法的区别。 版本 Kubernets v1.25.0 官网 将Pod分配给节点https://kubernet…

如何构建有效的AI Agents:从复杂到简约——深度解读Claude实践总结《Building effective agents》(上)

在人工智能技术日新月异的今天&#xff0c;大语言模型(LLM)已经成为技术创新的热点。 然而&#xff0c;在追逐技术前沿的热潮中&#xff0c;我们是否忽视了工程设计的本质&#xff1f; 作为全球人工智能领域的领军企业之一&#xff0c;Anthropic以其在AI安全和伦理方面的深入…

高中数学刷题版:函数奇偶性[干货]

文章目录 一、奇偶性定义例题 二、运算性质1、两个函数的和差积商2、复合函数3、画草图4、对称中心与对称轴 三、奇偶性判断例题 四、根据奇偶性求解析式例题 五、单调性与奇偶性的综合应用例题 一、奇偶性定义 1、定义域都是关于原点对称。 2、解析式关系 奇函数&#xff1a;…

【Sentinel】流控效果与热点参数限流

目录 1.流控效果 1.1.warm up 2.2.排队等待 1.3.总结 2.热点参数限流 2.1.全局参数限流 2.2.热点参数限流 2.3.案例 1.流控效果 在流控的高级选项中&#xff0c;还有一个流控效果选项&#xff1a; 流控效果是指请求达到流控阈值时应该采取的措施&#xff0c;包括三种&…

【Rust自学】7.4. use关键字 Pt.2 :重导入与换国内镜像源教程

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 7.4.1. 使用pub use重新导入名称 使用use将路径导入作用域内后。该名称在词作用域内是私有的。 以上一篇文章的代码为例&#xff1a; m…

集装箱的纸箱和塑料箱识别数据集,使用YOLO,COCO JSON,PASICAL VOC XML格式标注,识别准确率高达97.5%

集装箱的纸箱和塑料箱识别数据集&#xff0c;使用YOLO&#xff0c;COCO JSON&#xff0c;PASICAL VOC XML格式标注&#xff0c;识别准确率高达97.5% 数据集分割 训练组88&#xff05; 4605图片 有效集8% 438图片 测试集4% 219图片 预处理 自动定向&#x…

TOP K问题:利用堆排序找出数组中最小的k个数

设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 找小的数需要建大堆来解决&#xff0c;首先将数组中前K个数建成一个大堆&#xff0c;将从k1个数直到数组结束的所有数与堆顶的数进行比较&#xff0c;如果比堆顶的数小&#xff0c;则替换堆顶的数…

VDA 学习手册

VDA&#xff08;Verband der Automobilindustrie&#xff0c;德国汽车工业联合会&#xff09;报文标准是专为汽车行业制定的电子数据交换&#xff08;EDI&#xff09;标准&#xff0c;用于支持供应链管理中的数据传输。它是由德国汽车工业联合会开发和维护的&#xff0c;广泛应…

自动化测试- 自动化测试模型

目录 自动化测试模型简介 1、线性模型 举例 测试页面html文件 测试脚本 2. 关键字驱动测试&#xff08;Keyword-Driven Testing&#xff09; 需测试内容 关键字驱动测试框架 创建测试用例文件 运行测试 3. 数据驱动测试&#xff08;Data-Driven Testing&#xff09; …

【Halcon】例程讲解:基于形状匹配与OCR的多图像处理(附图像、程序下载链接)

1. 开发需求 在参考图像中定义感兴趣区域&#xff08;ROI&#xff09;&#xff0c;用于形状匹配和文本识别。通过形状匹配找到图像中的目标对象位置。对齐多幅输入图像&#xff0c;使其与参考图像保持一致。在对齐后的图像上进行OCR识别&#xff0c;提取文本和数字信息。以循环…

快速理解24种设计模式

简单工厂模式 建立产品接口类&#xff0c;规定好要实现方法。 建立工厂类&#xff0c;根据传入的参数&#xff0c;实例化所需的类&#xff0c;实例化的类必须实现指定的产品类接口 创建型 单例模式Singleton 保证一个类只有一个实例&#xff0c;并提供一个访问他它的全局…

CKA认证 | Day7 K8s存储

第七章 Kubernetes存储 1、数据卷与数据持久卷 为什么需要数据卷&#xff1f; 容器中的文件在磁盘上是临时存放的&#xff0c;这给容器中运行比较重要的应用程序带来一些问题。 问题1&#xff1a;当容器升级或者崩溃时&#xff0c;kubelet会重建容器&#xff0c;容器内文件会…