PostGis--地理以及投影数据

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情


1、简介

这章接着PostGis空间之后,主要是讲投影数据和地理在PostGis中的作用~

2、Projecting Data(投影数据)

  1. 地图投影的必要性:由于地球是球形的,直接将其表面展示到平面(如纸质地图或计算机屏幕)上会产生错误。为了解决这个问题,人们发明了多种地图投影方法。这些投影方法各有优缺点,有的保持面积(等面积投影),有的保持角度(保角投影,如Mercator投影),还有的在多个参数上尝试减少变形,寻找一个平衡点。
  2. 坐标系统转换:在处理空间数据时,有时需要在不同的空间参考系统之间进行转换。PostGIS提供了内置支持来变更数据的投影,主要函数包括:
    ○ ST_Transform(geometry, srid):用于变换数据的投影。
    ○ ST_SRID(geometry):返回几何数据的空间参考系统标识符(SRID)。
    ○ ST_SetSRID(geometry, srid):设置几何数据的SRID。

2.1 比较数据

  • SRID的重要性:SRID联合坐标定义了地球上的一个位置。没有SRID,坐标就只是一个抽象的概念。
  • 错误处理:如果尝试比较具有不同SRID的几何形状,例如使用ST_Equals函数比较两个不同SRID的点,系统将返回错误。示例中比较了两个SRID分别为4326和26918的点,返回错误因为它们属于不同的空间参考系统。
  • 使用ST_Transform的注意事项:虽然可以用ST_Transform函数在查询时动态转换SRID,但这种做法会使得空间索引无效,因此在数据库设计时应选择一个统一的SRID,并尽量避免在频繁的查询中使用转换。

2.2 数据库内SRID的管理

  • 查看表的SRID:通过查询geometry_columns表,可以查看数据库中每个表的SRID配置。这对于维护数据的空间一致性非常有用。

3、地理

地理坐标不是笛卡尔坐标。地理坐标不表示在平面上绘制的到原点的线性距离。相反,这些球面坐标描述了地球仪上的角度坐标。在球面坐标中,点由参考子午线的旋转角度(经度)和赤道的角度(纬度)指定。
PostGIS 使用两种类型:

  • geometry 类型用于存储欧几里得(平面)几何对象。它假设数据在一个平面空间中,适用于小范围的地理区域,如城市或县。空间函数和距离计算基于笛卡尔坐标系统进行,不考虑地球的曲率。
  • geography 类型用于存储球面几何对象。它考虑了地球的曲率,适用于大范围的地理区域,如跨国界或全球范围的数据。

3.1 使用地理

为了将几何数据加载到地理表中,使用ST_Transform函数将geom字段中的几何数据从其原始坐标系统转换为EPSG:4326坐标系统(即WGS 84,广泛用于地图和GPS中),然后将结果转换为地理类型(geography)

CREATE TABLE nyc_subway_stations_geog AS
SELECT
  ST_Transform(geom,4326)::geography AS geog,
  name,
  routes
FROM nyc_subway_stations;

-- 在地理表上构建空间索引与构建几何完全相同:
CREATE INDEX nyc_subway_stations_geog_gix
ON nyc_subway_stations_geog USING GIST (geog);
-- 区别在于:地理索引将正确处理覆盖极点或国际日期变更线的查询,而几何索引则不会。

3.2 创建地理表

CREATE TABLE airports (
    code VARCHAR(3),
    geog GEOGRAPHY(Point)
  );

INSERT INTO airports
  VALUES ('LAX', 'POINT(-118.4079 33.9434)');
INSERT INTO airports
  VALUES ('CDG', 'POINT(2.5559 49.0083)');
INSERT INTO airports
  VALUES ('KEF', 'POINT(-22.6056 63.9850)');

3. 3 转换为几何体

用于强制转换的 PostgreSQL 语法约定是追加到要强制转换的值的末尾


PS:

大家好,我是小健,Java开发工程师一枚,我会持续发一些技术推文,偶尔也会发些工作求职,互联网热点的事情,希望各位小伙伴多多支持,如果觉得本篇文章对您有所帮助,记得点赞关注收藏喔~

PostGIS 小白入门详细指南 PostGISPostgreSQL 的一个扩展,它将 PostgreSQL 转变为一个功能强大的空间数据库,使其能够存储、查询和分析地理空间数据PostGIS 遵循开放地理空间联盟(OGC)的标准,支持各种空间数据类型和操作,如点、线、多边形、缓冲区、空间连接等。存储各种空间数据类型(如几何类型和地理类型)空间索引,提高查询性能丰富的空间函数和操作支持投影和坐标系统转换城市规划与管理环境监测与分析物流与运输优化地图制作与可视化位置服务与导航。 阅读详情

相关推荐

Postgresql 12.2 + PostGIS 3.0.1 安装部署

完整记录在 centos7.6 环境下,安装postgresql数据库postgis空间拓展插件的过程。

运维-晓柏的博客 1万+

Windows环境搭建:PostGreSQL+PostGIS安装教程

本文介绍了在Windows系统下安装PostgreSQL 17与PostGIS 3.5.3的完整过程。内容包括PostgreSQL的默认路径安装、超级用户密码设置、5432端口配置,以及通过pgAdmin4连接数据库。随后详细演示了PostGIS扩展的安装步骤,包括创建GIS数据库、添加空间扩展功能,并展示了通过shapefile导入矢量数据PostGIS的方法。最后简要提及了Globalmapper和QGIS两种GIS软件连接PostgreSQL数据库的操作界面。文章配有详细截图指导,适合初学者快速完成

智慧空间实验室 2885

空间地理技术相关知识

坐标系是描述地球表面位置的数学体系。常见的坐标系包括地理坐标系(Geographic Coordinate System, GCS)和投影坐标系(Projected Coordinate System, PCS)。EPSG代码是由国际测量与绘图机构欧洲石油测量组(EPSG)定义的唯一标识符,用于描述各种地理坐标系和投影坐标系。Geohash是一种将经纬度坐标转换为字符串表示的系统,通过递归划分空间区域,将二维空间映射为一维字符串。

schezhiyong的博客 489

PostGIS-入门实例

PostgreSQL已经内置了很多空间特性:几何数据类型、几何类型函数与运算符、空间数据索引但对于现实世界的复杂需求仍力有不逮:有很多辅路支路的道路,需要用多条折线来表示;行政区域的飞地,需要用多个多边形的集合来表示;高效判断点是否在多边形内、两条折线是否有交点,两个区域相离、相邻、重叠还是包含。好在PostgreSQL强大 的扩展机制为解决问题留下了一个窗口,PostGIS 为此而生,它已经成为GIS行业的事实标准。

孙霸天的专栏 2811

PostGIS教程一:PostGIS介绍

"这个问题,对多边形进行计算,计算量非常大而且难以计算,但在计算矩形的情况下,计算比较容易,而且速度非常快。PostGIS 0.1的开发花费了不到一个月的时间,但做一个“MyGIS" 0.1可能需要更长的时间,可能永远也不会成功。而构建的专有的、独立的系统,即应用程序和平面文件之间的耦合性非常高,平面文件里的空间数据没有数据独立性。在PostGIS 1.0中,这种新的、更快的、轻量级的数据表示成为了默认的数据表示。时,PostGIS团队查看了它们的代码,这坚定了最初使用PostgreSQL的决定。

挣钱花388的博客 3425

一篇文章带你玩转PostGIS空间数据库

一篇文章带你玩转postGIS空间数据库,绝对硬核

半旧518的博客 8129

PostGIS教程十二:投影数据

目录 一、比较数据 二、转换数据 三、投影练习 3.1、练习 地球不是平的,也没有简单的方法把它放在一张平面纸地图上(或电脑屏幕上),所以人们想出了各种巧妙的解决方案(投影)。 每种投影方案都有优点和缺点,一些投影保留面积特征;一些投影保留角度特征,如墨卡托投影(Mercator);一些投影试图找到一个很好的中间混合状态,在几个参数上只有很小的失真。所有投影的共同之处在...

不睡觉的怪叔叔的博客 8592

postgresql数据库postgis扩展简介

postgresql数据库postgis扩展简介

handsomestWei的博客 1434

Python 地理空间分析秘籍(一)

地理空间分析并不特殊;与其他类型的分析(如金融市场分析)相比,它只是有所不同。我们处理几何对象,如线、点和多边形,并将这些几何形状与属性(如业务数据)连接起来。我们提出“在哪里”的问题,例如“最近的酒吧在哪里?”“我的所有客户都位于哪里?”“我的竞争对手位于哪里?”其他位置问题包括,“这栋新建筑会投射到公园上吗?”“去学校的最短路线是什么?”“我孩子去学校最安全的路线是什么?”“这栋建筑会阻挡我观看山景的视线吗?”“在哪里建造我的下一家商店是最优的位置?

龙哥盟 727

图像坐标球面投影_PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系)...

背景背景知识和坐标系有关。什么是地理坐标系,什么是投影坐标系?参考此文:原文1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographic coordinate system是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进...

weixin_42519826的博客 463

PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系)

原文地址 背景 《PostGIS 坐标转换(SRID)的边界问题引发的背景知识 - ST_Transform》 一文,介绍了使用某个坐标系时,计算国内某个点到某个点的距离出现了负数。 背景知识和坐标系有关。 什么是地理坐标系,什么是投影坐标系? 参考此文: http://www.cnblogs.com/jetz/archive/2005/03/2

yunqishequ1的博客 5380

聚焦GISBox矢量服务:数据管理、数据库连接与框架预览全攻略

矢量服务是地理信息系统(GIS)中的网络服务,核心是通过OGC等标准化协议(如WFS),将带地理坐标的点、线、面等矢量要素(及属性信息),以可交互、可编辑的形式提供给跨平台应用,支持用户直接查询、修改地理数据,而非输出静态地图图片,是实现“地图即活数据”的关键技术。面对这一技术,GISBox支持导入矢量数据如GEOJSONSHAPE文件等,也支持POSTGIS数据库服务的接入。

GISBox官方的日常分享 721

PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系)...

背景 《PostGIS 坐标转换(SRID)的边界问题引发的背景知识 - ST_Transform》一文,介绍了使用某个坐标系时,计算国内某个点到某个点的距离出现了负数。 背景知识和坐标系有关。 什么是地理坐标系,什么是投影坐标系? 参考此文: http://www.cnblogs.com/jetz/archive/2005/03/29/127547....

weixin_34123613的博客 1814

mysql象限和投影_PostGIS空间数据库SRID背景知识 - 地理坐标系(球面坐标系)和投影坐标系(平面坐标系) - GIS开发者...

背景背景知识和坐标系有关。什么是地理坐标系,什么是投影坐标系?参考此文:原文1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographic coordinate system是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进...

weixin_34214135的博客 399

PostGIS地理类型

地理类型提供了对“地理”坐标(有时称为“大地”坐标,或“lat/lon”,或“lon/lat”)表示的空间特征的原生支持。 地理坐标是用角单位(度)表示的球坐标。 PostGIS几何类型的基础是平面。 平面上两点之间的最短路径是一条直线。 这意味着几何图形(面积、距离、长度、交点等)的计算可以使用笛卡尔数学和直线向量来计算。 PostGIS地理类型的基础是球体。 球面上两点之间的最短路径是一条大圆。 这意味着地理上的计算(面积、距离、长度、交叉点等)必须在球体上计算,使用更复杂的数学。 为了更精确的测量,计

XiaoCai 1211

postgis如何自定义投影坐标系

postgis自定义投影坐标系

qq_57951576的博客 804

如何使用MapServer:开源地理信息系统的终极指南

MapServer是一款强大的开源地理信息系统(GIS)软件,它允许用户创建动态地图应用程序并提供空间数据服务。无论是开发Web地图应用、处理地理空间数据,还是构建复杂的地理信息系统,MapServer都能提供高效可靠的解决方案。 ## 📌 MapServer核心功能解析 MapServer支持多种地理数据格式和服务标准,使其成为地理信息处理的瑞士军刀。以下是其主要功能: ### 🌍 多

gitblog_00515的博客 420

Postgis(二)加载空间数据

本文所用数据库postgresql 12,postgis扩展为3.0.0版本 空间数据导入数据库 将pgAdmin打开,创建数据库。 为新生成的数据库创建postgis扩展。 可在扩展中找到postgis。 打开postgis shapfile。 打开postgis shapefile导入文件,切记文件路径不能有中文,否则会产生dbf文件无法打开的错误,使得shp...

qq_42272508的博客 630
上一篇: PostGis空间(下):空间连接与空间索引
下一篇: PostGis--几何构造函数
爱学习的小健
博客等级 码龄7年 152粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值