使用SQL在PostGIS中创建各种空间数据
#1024程序员节|征文#
一、目录
1. 概述
2. 几何(Geometry)类型
创建点
创建线
创建面
3. 地理(Geography)类型
地理点(GEOGRAPHY POINT)
地理线串(GEOGRAPHY LINESTRING)
地理点(GEOGRAPHY POLYGON)
二、概述
PostGIS 是一个强大的空间数据库扩展,它为 PostgreSQL 数据库添加了对空间数据的支持。
通过 PostGIS,我们可以存储、查询和分析各种几何形状和地理空间数据。
在本文中,我们将探讨如何在 PostGIS 中创建不同类型的空间数据。
三、几何(Geometry)类型
(一)、创建点 🔗
- 单个点 🔗
在 PostGIS 中,可以使用ST_GeomFromText
函数来创建单个点。
例如,要创建一个坐标为(10, 20)的点,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES (ST_GeomFromText('POINT(10 20)'));
- 带有坐标系的单个点 🔗
如果要创建带有特定坐标系的单个点,可以在ST_GeomFromText
函数中指定坐标系。
例如,要创建一个在 WGS84 坐标系下坐标为(-71.060316, 42.258729)的点,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES (ST_GeomFromText('POINT(-71.060316 42.258729)', 4326));
- 坐标系为4326的线 🔗
要创建一个在 WGS84 坐标系下的线串,可以使用以下方式。
例如,要创建一个由两个点组成的线串,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES
(ST_GeomFromText('LINESTRING(-71.060316 42.258729, -71.061 42.259)', 4326));
- 创建多点multipoints 🔗
要创建多个点组成的多点对象,可以使用ST_Multi
函数结合ST_GeomFromText
。
例如,要创建包含三个点的多点对象,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES
(ST_Multi(ST_GeomFromText('MULTIPOINT(1 1, 2 2, 3 3)')));
(二)、创建线 🔗
- 单个线 🔗
创建单个线串可以使用与创建单个点类似的方法。
例如,要创建一个由两个点组成的线串,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES
(ST_GeomFromText('LINESTRING(1 2, 3 4)'));
- 带有坐标系的单个线 🔗
带有坐标系的单个线串创建方式与带有坐标系的单个点类似。
例如,要创建一个在 WGS84 坐标系下的线串,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES
(ST_GeomFromText('LINESTRING(-71.060316 42.258729, -71.061 42.259)', 4326));
- 坐标系为4326的线 🔗
同带有坐标系的单个线的创建方式。
- 创建多点multilinestring 🔗
要创建多个线串组成的多线串对象,可以使用ST_Multi
函数结合ST_GeomFromText
。
例如,要创建包含两条线串的多线串对象,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES
(ST_Multi(ST_GeomFromText('MULTILINESTRING((0 0, 1 1),(2 2, 3 3))')));
(三)、创建面 🔗
- 单个面 🔗
创建单个多边形可以使用ST_GeomFromText
函数。
例如,要创建一个矩形多边形,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES
(ST_GeomFromText('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));
- 带有坐标系的单个面 🔗
带有坐标系的单个多边形创建方式与带有坐标系的单个点类似。
例如,要创建一个在 WGS84 坐标系下的多边形,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES
(ST_GeomFromText('POLYGON((-71.060316 42.258729, -71.061 42.259, -71.060 42.259, -71.060316 42.258729))', 4326));
- 坐标系为4326的面 🔗
同带有坐标系的单个面的创建方式。
- 创建多点multipolygon 🔗
要创建多个多边形组成的多多边形对象,可以使用ST_Multi
函数结合ST_GeomFromText
。
例如,要创建包含两个多边形的多多边形对象,可以使用以下 SQL 语句:
INSERT INTO your_table (geom)
VALUES
(ST_Multi(ST_GeomFromText('MULTIPOLYGON(((0 0, 0 1, 1 1, 1 0, 0 0)),((2 2, 2 3, 3 3, 3 2, 2 2))')));
四、地理(Geography)类型
(一)、创建地理点(GEOGRAPHY POINT) 🔗
创建地理点可以使用ST_GeogFromText
函数。
例如,要创建一个在 WGS84 坐标系下的地理点,可以使用以下 SQL 语句:
INSERT INTO your_table (geog)
VALUES
(ST_GeogFromText('SRID=4326;POINT(-71.060316 42.258729)'));
(二)、创建地理线串(GEOGRAPHY LINESTRING) 🔗
创建地理线串可以使用ST_GeogFromText
函数。
例如,要创建一个在 WGS84 坐标系下的地理线串,可以使用以下 SQL 语句:
INSERT INTO your_table (geog)
VALUES
(ST_GeogFromText('SRID=4326;LINESTRING(-71.060316 42.258729, -71.061 42.259)'));
(三)、创建地理点(GEOGRAPHY POLYGON) 🔗
创建地理多边形可以使用ST_GeogFromText
函数。
例如,要创建一个在 WGS84 坐标系下的地理多边形,可以使用以下 SQL 语句:
INSERT INTO your_table (geog)
VALUES
(ST_GeogFromText('SRID=4326;POLYGON((-71.060316 42.258729, -71.061 42.259, -71.060 42.259, -71.060316 42.258729))'));
相关文章:

使用SQL在PostGIS中创建各种空间数据
#1024程序员节|征文# 一、目录 1. 概述 2. 几何(Geometry)类型 创建点 创建线 创建面 3. 地理(Geography)类型 地理点(GEOGRAPHY POINT) 地理线串(GEOGRAPHY LINESTRINGÿ…...
ArkTS 如何适配手机和平板,展示不同的 Tabs 页签
ArkTS(Ark TypeScript)作为HarmonyOS应用开发的主要语言,提供了丰富的组件和接口来适配不同设备,包括手机和平板。在展示不同的Tabs页签以适应手机和平板时,ArkTS主要依赖于布局和组件的灵活性,以及响应式设…...

Docker下载途径
Docker不是Linux自带的,需要我们自己安装 官网:https://www.docker.com/ 安装步骤:https://docs.docker.com/engine/install/centos/ Docker Hub官网(镜像仓库):https://hub.docker.com/ 在线安装docker 先卸载旧的docker s…...

Windows: 如何实现CLIPTokenizer.from_pretrained`本地加载`stable-diffusion-2-1-base`
参考:https://blog.csdn.net/qq_38423499/article/details/137158458 https://github.com/VinAIResearch/Anti-DreamBooth?tabreadme-ov-file 联网下载没有问题: import osos.environ["HF_ENDPOINT"] "https://hf-mirror.com" i…...

MySQL 9从入门到性能优化-慢查询日志
【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

ARM学习(33)英飞凌(infineon)PSOC 6 板子学习
笔者来聊一下psoc62 系列板子的知识 1、PSOC62板子介绍 Psoc6-evaluationkit-062S2 与RT-Thread联合推出的一款32位的双core的板子,基于CortexM4以及CortexM0。 管脚兼容Arduio。板载DAP-Link,可以支持调试以及串口,无需外接2MB的Flash以及…...

华为原生鸿蒙操作系统的发布有何重大意义和影响:
#1024程序员节 | 征文# 一、华为原生鸿蒙操作系统的发布对中国的意义可以从多个层面进行分析: 1. 技术自主创新 鸿蒙操作系统的推出标志着中国在操作系统领域的自主创新能力的提升。过去,中国在高端操作系统方面依赖于外国技术,鸿蒙的发布…...
API 接口:连接生活与商业的数字桥梁
在当今数字化高速发展的时代,API(Application Programming Interface,应用程序编程接口)接口正以前所未有的深度和广度影响着我们的日常生活与商业决策。 一、API 接口在日常生活中的应用 智能出行 地图导航应用通过接入各种交通数…...
IEC101 JAVA开发记录
目录 JAVA Demo 仿真工具 平衡式与非平衡式 帧格式 固定帧格式 可变帧格式 单字节 控制域 主站到子站 子站至主站 位组成 链路地址 应用服务数据单元(ASDU) 类型标识TI 可变结构限定词(VSQ) 传送原因(COT) 信息体元素 带品质描述词的单点信息(SIQ) 带品…...

降压恒压150V供电 负载固定5V 持续0.6A电动车仪表供电芯片SL3150H
一、供电能力 高电压输入:SL3150H具备150V的供电能力,这意味着它可以在电动车的复杂电气环境中稳定工作,无论是面对高电压的输入还是电压波动较大的情况,都能保持稳定的输出。固定输出电压与电流:在输出方面ÿ…...

QT 从ttf文件中读取图标
最近在做项目时,遇到需要显示一些特殊字符的需求,这些特殊字符无法从键盘敲出来,于是乎,发现可以从字体库文件ttf中读取显示。 参考博客:QT 图标字体类IconHelper封装支持Font Awesome 5-CSDN博客 该博客封装的很不错…...
JS动态调用变量
当存在多个变量checkbox1、checkbox2、checkbox3、checkbox4的变量时 -常规调用:if(条件A){this.$refs.checkbox1.check true }if(条件B){this.$refs.checkbox2.check true } 或者使用switch case-动态调用: var result 2 // 在dom渲染完成再给checkbox赋值this.$nextTick…...

django restful API
文章目录 项目地址一、django环境安装以及初识restful1.1 安装python 3.10的虚拟环境1.2 创建django工程文件1.3 创建一个book app1.4 序列化(Django JsonResponse)1.4.1创建一个Models1.4.2 创建django的超级用户admin1.4.3 添加serializers.py生成序列化器1.5 FBV创建视图1…...

在xml 中 不等式 做转义处理的问题
对于这种要做转义处理,<![CDATA[ < ]]>...
python——文件存储与写入path
path方法常常用来访问一个文件所在的地址,然后将地址储存在变量中。然后有不同的方法将文件内容进行处理,还可以将文件进行创建。 from pathlib import Path pathPath(xxxxxxx) 1.文件读取操作 (1)txt文件 常用read_text()读取文件内容, …...

AI 提示词(Prompt)入门 :ChatGPT 4.0 高级功能指南
这段时间 GPT4 多了很多功能,今天主要是增加了 GPTs Store 的介绍和 创建 GPTs 的简单方法,那么我们开始吧,文末有彩蛋。 这里主要讲解如下几个点: 1: ChatGPT 4.0 插件的使用 2:ChatGPT 4.0 高级数据分…...

C++:模板
目录 一.泛型编程 二.模板 函数模板 类模板 一.泛型编程 在C中,支持函数重载,如果我们通过函数重载实现通用的交换函数,写法如下: void Swap(int& left, int& right) {int temp left;left right;ri…...

假如浙江与福建合并为“浙福省”
在中国,很多省份之间的关系颇有“渊源”,例如河南与河北、湖南与湖北、广东与广西等等,他们因一山或一湖之隔,地域相近、文化相通。 但有这么两个省份,省名没有共通之处,文化上也有诸多不同,但…...

AI图片生成3D物体和2D视频提取3D动画
包括AI图片生成3D物体的网站: 第一个为Artefacts.AIhttps://app.artefacts.ai/starter 第二个为 https://3d.csm.ai/ 以下4个的视频教程连接https://www.youtube.com/watch?vmQQCyzTA_F8 第三个为Tripo AI: Tripo AI for Web 第四个为Meshy AI: Meshy - Free …...
Android 应用包名的定义 pm list packages查询的包名
问题 在AndroidManifest和build.gradle其实都有应用包名的定义,有时候发现两者不一样,那么最终编译到软件生效的是哪个呢? 现象 连接设备后,通过adb shell pm list packages 查询应用包名,所列的名称是在build.grad…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...