首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PostGIS中具有纬度/长度SRID的实际(大圆)距离?

PostGIS 中具有纬度/长度 SRID 的实际(大圆)距离计算公式如下:

  1. 首先引入必要的 PostGIS 函数和概念:
代码语言:sql
复制

SELECT ST_Distance(

代码语言:txt
复制
       -- 地球表面的点,包括纬度/长度
代码语言:txt
复制
       ST_Point(0, 0), -- 起始点
代码语言:txt
复制
       ST_Point(3.986022988749895, 14.62283707249677) -- 终点
代码语言:txt
复制
   )/ 1000000 AS distance;
代码语言:txt
复制
  1. 通过实际的大圆距离和转换后的纬度和长度,计算出实际的大圆距离:
代码语言:sql
复制

SELECT

代码语言:txt
复制
    3963.0 AS latitudes_degrees,
代码语言:txt
复制
    278.78100722718 AS longitudes_degrees,
代码语言:txt
复制
   SRID(ST_Transform(
代码语言:txt
复制
       ST_GeogFromText('POINT(' || latitudes_degrees || ' ' || longitudes_degrees || ')'),
代码语言:txt
复制
       '4326'
代码语言:txt
复制
   )) AS geographic_coordinates_wgs84,
代码语言:txt
复制
   ST_Distance(
代码语言:txt
复制
     ST_Point(0, 0), -- 起始点
代码语言:txt
复制
     ST_Point(3.986022988749895, 14.62283707249677) -- 终点
代码语言:txt
复制
   )/ 1000000 AS distance_wgs84

FROM

代码语言:txt
复制
  6459796267269249510 TABLE_ID;
代码语言:txt
复制

最后,使用 PostGIS 的 ST_Within() 函数,找出距离为 0 的纬度/长度值:

代码语言:sql
复制
WITH
    -- 获取范围
    spatial AS (
        SELECT
           DISTINCT ST_Point(0, 0) AS point
        FROM
           table_id
        WHERE
           ST_Within(
               ST_Extent(table_id) -- 获取完整的地理范围
           )
    )

SELECT
    NULL
FROM
    TABLE_ID
WHERE
    -- 计算距离并判断位于某个距离/纬度/点之内
    ST_Distance(spatial.point, ST_Point(0, 0)) <= distance_wgs84;

以上代码将计算 PostGIS 中的实际(大圆)距离。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Postgres空间地理类型POINT POLYGON实现附近定位和电子围栏功能

需求和背景 在已有大量经纬度坐标点情况下,给定一组经纬度如何快速定位到附近POI有哪些? 现在使用经纬度转geohash算法,将二维距离运算转换为like前缀匹配。...点POINT类型和距离 点POINT类型数据结构为POINT(0 0),正好可以用作存储经纬度。...,使用pg字符串拼接符号||,POINT经纬度之间要留空格。...最后一种坐标转换计算方法, 参考PostGIS 坐标转换(SRID)边界问题引发专业知识 - ST_Transform 建议国内不要使用马萨诸塞州投影平面,会使得距离计算不够准确。...这样椭球体具有特点: 可以量化计算具有长半轴,短半轴,偏心率。 以下几行便是Krasovsky_1940椭球及其相应参数。

3.5K20

POSTGIS 总结

各种数据库实际实现空间索引差异很大,最常见实现是R-tree(在PostGIS中使用),但在其他空间数据库也有基于四叉树(Quadtrees)实现和基于网格索引(grid-based indexes...(text)表示形式转换为内部表示形式 请注意,除了具有几何图形表示形式文本参数外,还可以指定一个提供几何图形SRID数字参数。...这对于实际报告几何图形之间距离非常有用 ST_DWithin(),测试两个几何图形之间距离是否在某个范围之内, 3.4 geography类型 ST_AsText(geography) returns...与直觉相反,执行空间索引搜索并不总是更快:如果搜索将返回表每条记录,则遍历索引树以获取每条记录实际上比从一开始线性读取整个表要慢(注意这句话)。...图形实际形状相同,则图形相等 8.3 等边界框(=) 在最坏情况下,需要精确相等来比较几何图形每个顶点以确定相等。这可能会比较慢,并且可能不适合数量大几何图形。

5.6K10

超融合时序数据库YMatrixDB与PostGIS案例

YMatrix适用于各种规模设备数据融合与物联网时序应用场景,本案例以具体案例来说明YMatrix在PostGIS数据加载、处理和分析能力以及时空数据具体使用方法,首先我们先了解下PostGIS...PostGIS特点PostGIS 具有强大功能,具有以下特点PostGIS支持空间数据类型,包括点(POINT)、线(LINESTRING)、面(POLYGON)、多点 (MULTIPOINT)、...postgis扩展,postgis适用于当前session数据库,如果其他数据库使用,请切换到其他数据库再次创建即可。...计算两点之间距离-- 两个点之间距离,距离单位是mselect ST_Distance(ST_GeographyFromText('SRID=4326;POINT(114.01729922.537126...,来根据该经纬度位置统计出租车数量。

1.7K30

超融合时序数据库YMatrixDB与PostGIS案例

YMatrix适用于各种规模设备数据融合与物联网时序应用场景,本案例以具体案例来说明YMatrix在PostGIS数据加载、处理和分析能力以及时空数据具体使用方法,首先我们先了解下PostGIS...PostGIS特点 1、PostGIS 具有强大功能,具有以下特点 2、PostGIS支持空间数据类型,包括点(POINT)、线(LINESTRING)、面(POLYGON)、多点 (MULTIPOINT...2、其中f_table_schema字段表示是空间表所在模式,f_table_name字段表示是空间表表名,f_geometry_column字段表示是该空间表几何字段名称,srid字段表示是该空间表空间参考...计算两点之间距离 -- 两个点之间距离,距离单位是mselect ST_Distance(ST_GeographyFromText('SRID=4326;POINT(114.017299 22.537126...,来根据该经纬度位置统计出租车数量。

1.4K10

PostGIS空间数据库简明教程

在这种情况下,PostGIS 将不允许在同一列插入其他几何类型。 这始终是存储数据首选方式,因为某些操作希望几何图形具有相同类型。...48, 4326));另一个常用操作是距离计算,它通常用于确定哪些对象位于地图上给定点附近。...它包括有关坐标系信息、(0, 0) 点在地球上位置、坐标的分辨率以及地图上坐标如何与地球上实际点相对应。...所以我们总是需要知道进入系统数据 SRIDPostGIS 在涉及 SRID 时非常灵活。 在上面的示例,我们创建了一个表“building”,其中包含一个没有指定 SRID 几何列。...这意味着 PostGIS 将允许插入具有任何 SRID 多边形。 在我们无法预测或更改传入数据 SRID 情况下,这有时很有用,甚至是必要,但应尽可能避免。

2.6K30

空间索引 - 各数据库空间索引使用报告

或 lat 列上创建普通索引,假设是 lon 列,那么通过 lon 列查找到同一经度数据后,还要在此基础上过滤掉纬度差异过大数据。...如果在 lon,lat 上创建多列索引,查询到同一经度、纬度相近数据固然快,但附近点并不只是经度相同。 如此下来,就要用到空间索引了。...建表时要指定其 SRID (空间参考标识符, 是与特定坐标系、容差和分辨率关联唯一标识符) 值,以经纬度存储用 4326; 例如 loc geography(point, 4326),另外将数据转为...来切换是否显示命令执行时间; 结论 postgreSQL 对空间查询支持非常灵活,足以支持多种复杂空间查询,PostGIS 能计算不同投影坐标系下真实空间距离,且查询效率极高,在大量数据时也不会像...参考: PgSQL · 功能分析 · PostGIS 在 O2O应用优势 PostgreSQL 全表 全字段 模糊查询毫秒级高效实现 MySQL 介绍 Mysql 重要性和强大不必多言,它存储引擎

7.5K81

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

所有投影共同之处在于,它们将(地球)转换为平面笛卡尔坐标系。 使用投影特别简单,PostGIS提供了ST_SRID(geometry)和ST_SetSRID(geometry,SRID)函数。...3.2 缓冲区 缓冲区操作在GIS工作流很常见,在PostGIS也可以进行缓冲区操作。...比如你以你大哥身高为参考,计算你比他高了多少,判断你有没有长高(前提是你哥不长个了,误~) 具体可以看如下例子。 下图是线性参考在交通网实际应用,红色就是线性参考。...—— 栅格列数和行数 upperleftx、upperlefty —— 对应空间坐标系栅格左上角坐标 scalex、scaley —— 单个像元宽度和长度(单位等同于空间参考坐标系单位)...srid —— 空间参考坐标系,默认被设置为0。 pixelsize —— 单个像元宽度和长度。当scalex和scaley相等时,就可以直接使用这个参数设置像元大小。 效果如下

1.3K40

PostGIS特性

3、PostGIS提供简单空间分析函数(如Area和Length)同时也提供其他一些具有复杂分析功能函数,比如Distance。...7、数据库坐标变换 数据库几何类型可以通过Transform函数从一种投影系变换到另一种投影系。...在OpenGIS几何类型都将SRID作为自身结构一部分,但不知什么原因,在OpenGISSFSQL规范,并没有引入Transform。...8、球体长度运算 存储在普通地理坐标系集合类型如果不进行坐标变换是无法进行程度运算,OpenGIS所提供坐标变换使得积累类型程度计算变成可能。...11、栅格数据类型 PostGIS通过一种新数据类型片,提供对于大栅格数据对象存储。片由以下几个部分组成:包裹矩形框、SRID、类型和一个字节序列。

1.6K30

【实战】如何通过PostGIS实现附近的人

|导言:PostGIS是业界功能最全面,能力最强大空间地理数据库引擎。现实业务开发,经常会遇到有附近某某需求,如何快速实现呢,PostGIS+PostgreSQL可以帮到你。...本文就讲解如何通过PostGIS实现附近对象这个功能,实际很简单就一条SQL可以搞定。...第一步:创建插件,登录到数据库实例,在业务database执行如下命令: \c test CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology...此处用 天安门广场坐标作为示例:116.404177,39.909652 第五步:明确好要查询坐标,就直接在数据库中找到这个坐标最近5个对象,并且输出这五个对象离此地距离,此处单位是 百公里。...=4326;POINT(116.404177 39.909652)'::geometry limit 5; 第六步:查看此对象 1000米以内所有对象与距离: select uid, name, ST_AsText

1.9K40

GIS坐标系测绘原理:大地水准面基准面参考椭球体EPSGSRIWKT

但两者在数学理论上并无本质区别,都是矩阵P,只是P元素不同罢了。 我们地图,总得画在纸上,在显示器上吧,不然到处拎着地球仪?地球上点是用经纬度表示纬度越高地方,1度经度距离就越短。...那么,问题来了,地球表面是曲面,而且经纬度长度距离并不是简单比例关系,怎样画到平面上?答案是,投影算法。好,问题又来了,投影算法哪家强?...没有角度变形,经线长度比和纬线长度比相等。适于制作沿纬线分布纬度地区、小比例尺地图。市面上中国地图应该就是用这种投影。...OGC标准参数SRID,也是指空间参考系统ID,与EPSG一致,即: OGC标准中空间参照系统SRID与EPSG空间参照系统ID相一致。...每个空间实例都有一个空间引用标识符 (SRIDSRID 对应于基于特定椭圆体空间引用系统,可用于平面球体映射或圆球映射 从两个空间数据实例派生任何空间方法结果仅在这两个实例具有相同 SRID

3.3K11

如何利用现代化数据栈高效处理地理信息数据

由于每个卫星和我们距离不同,因此它们同一时刻发送信标会在微弱时间上先后抵达我们设备上。这样我们就有了带有延迟信标信号,每一个延迟是可以被看作是一个距离。...不同 SRID 值代表了将几何体映射到坐标系不同方式。几何体本身空间数据结合 SRID 就可以具体定位这个几何体在坐标系位置。 下图简单演示了有无 SRID 得差异。...某些数据库和空间类型(如 PostgreSQL PostGIS 几何和地理或 Microsoft SQL Server 地理类型)使用预定义 EPSG 代码子集,只可使用具有这些 SRID...利用 ElasticSearch 强大全文索引能力,应用可以直接对 ElasticSearch 存储地理信息数据进行全文检索 可以看到采用 CloudCanal 以后得现代化数据栈处理地理信息数据具有如下好处...在实际情况为了保障业务运行对于实时数据同步稳定性 CloudCanal 采用了多种方式来实现。

1K20

构建自己地理信息空间数据库及与客户端简单交互

最重要只要接触过SQL语言,就可以利用postgisSQL语法便捷操纵装载着空间信息数据框(数据表),这些二维表除了被设定了一个特殊空间地理信息字段(带有空间投影信息、经纬度信息等)之外,与主流数据管理系统所定义各种字段并无两样...; 5、上一步完成之后,即可通过postgis安装目录PostGIS 2.0 Shapefile and DBF Loader Exporter工具来手动导入本地shp文件。...可以看到地理信息列在postgis已经被编码成一组特殊数字,而在Rsf对象则是嵌套列表,在PythonGeoDataFrame则是特殊geomtry列。...使用geopandas包中提供postgis接口函数,导入engine连接池mytest库bou2_4p表所有数据。...最后利用pandas封装sqlalchemy写出函数,将刚才规范过之后表china_map写入postgis

6K20

GIS数据漫谈(六)— 投影坐标系统

地“球”被投影到“平面”后,还有一个最实际功能就是便于测量。因为投影后坐标都是在直角平面坐标系下坐标了(单位一般为米)。比如计算两点间距离,直接用勾股定理即可。...已知球面上两点经纬度也是可以计算距离,准确说是大圆(GreatCircle)距离,后面我们还会提到一般采用 Haversine 公式。...这条大圆(Greate Circle)即为球面上两点最短距离。那我们在墨卡托投影平面上连接投影后两点得到直线(如下图蓝线)又是什么呢?...(2)等积投影球面上面状图形轮廓经投影后,仍保持面积不变。(3)任意投影既不等角也不等积,角度、面积、长度三种变形同时存在。在任意投影,比较常见一种是等距投影。...所谓等距投影,并不是说这类投影不存在长度变形,而是沿某一特定方向距离,经过投影之后保持不变。正所谓鱼和熊掌不可兼得,没有既能保持等角又能保持等积地图投影,需要根据实际需求和应用情况进行取舍。

1.1K10

如何使用postgis做一个高可用附近的人服务?

redis数据全部放在内存,不支持排序。有谁用在生产环境中了,请告诉我... 本文采用postgis方案,相比较其他方案,开发人员对SQL都比较熟悉。...因为ST_Transform是不走索引距离排序要全表扫,代价太大 ST_X,ST_Y等,将坐标转化为可读纬度,而不是0101000020E61000005C5E792FA2075D4026BC259C750C4440...用户每次请求都需要实际计算,这注定了CPU将成为系统主要争夺点。由于RDBMS特性,在内存有限环境,IO也会成为瓶颈,建议有条件尽量挂载SSD硬盘。...路由表可以使用geohash进行分块或者按照实际城市区域代码进行分片映射。...这种模式有很多好处,比如你可以订阅一份数据专门去做用户轨迹服务 PgRouter 将经纬度转化为geohash,根据路由表信息,定位到pg集群一批节点,进行查询计算 节点启停、主从关系,使用repmgr

2.6K50

Python学习——库Geopy用法之经纬度坐标转换、经纬度距离计算

转换原理:借助第三方API平台,为了方便,Geopy将市面上提供经纬度转换第三方平台接口都分别封装在一个类,借助Geopy模块来调用。...地理编码 使用地理编码功能时,需要借助Geopygeocoders模块,Geopy把所有第三方API封装到Geocoders。...distance 计算距离有两种:大圆距离与大地线距离(默认,更精确)。...大圆算法将地球简化为一个圆球,其计算距离是球面上过两点大圆距离。 大地线使用目前国际通用方法,用旋转椭球面表示地球,其计算是两点在椭球面上最短距离。...大圆距离计算时间大约只有前者1/20. 2.3.2 大圆距离 gc = distance.great_circle((45.768189, 126.6212835), (39.907359, 116.3912630

4.2K51

如何在Ubuntu 14.04上安装和配置PostGIS

PostGIS允许您使用几何和地理数据类型存储空间数据,使用空间函数执行空间查询以确定区域,距离长度和周长,并在数据上创建空间索引以加速空间查询。...虽然此存储库PostGIS软件包可能并不总是最新版本,但它维护得很好,并且无需从源代码编译PostGIS。...因此,要安装PostGIS,我们会将此存储库添加到我们,然后使用我们包管理器进行安装。...首先,shared_buffers应该更改为服务器RAM75%左右。200MB对于具有512MB RAM服务器来说,这是一个很好价值。...我们正在与国家及其不规则边界打交道,因此我们数据库每个国家都没有单一纬度值。因此,为了获得每个国家纬度,我们首先使用PostGISST_Centroid功能找出每个国家质心。

2.4K00

根据两点纬度计算距离_经纬度两点距离

地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心假想线),在地球腰画一个与地轴垂直大圆圈,使圈上每一点都和南北两极距离相等,这个圆圈就叫作“赤道”。...纬度线投射在图上看似水平平行线,但实际上是不同半径圆。有相同特定纬度所有位置都在同一个纬线上。 赤道纬度为0°,将行星平分为南半球和北半球。...纬度1秒长度 地球子午线总长度大约40008km。...结果是km…… 在实际应用当中,一般是通过一个个体邮政编码来查找该邮政编码对应地区中心纬度,然 后再根据这些经纬度来计算彼此距离,从而估算出某些群体之间大致距离范围(比如酒店旅客分布范围...纬度差一度就简单了,因为经线是大圆,和纬度无关 = πR/180=111.319491 km */ // 获取两个位置点之间相对距离 // 单位KM double GetDistance(GoToLocation

1.9K20

python与地理空间分析(二)矢量数据

距离测量是地理空间分析一个非常重要功能,在气象数据处理也会经常用到,例如查找最临近气象站点、气象站点数据与其他数据匹配等操作。...把地球当作一个没有曲率平面模型,计算两点距离即计算直线距离,根据坐标利用勾股定理就可以计算,但是地球本身是具有曲率,勾股定理计算,比较简单和快速,在尺度上可以得到一个在可接受误差范围距离,对精度有一定要求并不能满足...其实我们理解直线就是利用勾股定理计算地图上两点间距离,而实际航线是计算大圆距离也是球面距离。...大圆距离是指球体把桌面上两点之间距离,球面上任意两点以及球心可以确定唯一大圆,在这个大圆上连接这两点较短长度就是大圆距离。计算大圆距离常用算法就是半正矢公式。...坐标转换 在气象数据,常用到投影是UTM投影,且一般是等距离投影,而一些数据为了方便计算,常用等经纬度投影,这就需要坐标之间转换。常用工具包是utm包: ?

3.5K21

pgrouting 路径规划_路径分析是什么意思

该扩展库依托PostGIS自身gist索引,丰富坐标系与图形类型,强大几何处理能力,如空间查询,空间处理,线性参考等优势,能保障在较大数据级别下网络分析效果更快更好。   ...PostGIS早已奠定了最优秀开源空间数据库地位,在新时代GIS应用将会越来越普遍。...最后,路径分析不仅仅是最短路径,在实际应用还有最短耗时,最近距离,道路对车辆类型限制,道路对速度限制等因素,交通事故、市政事故导致交通障碍点等问题,所有的问题本质其实是对路径分析权重(Weight)...,不要还有中文;对于中文乱码,可以设置GBK等转码); 3.设置导入SRID为3857进行坐标系转化; 4.勾选Options里面的”Generate simple geometries instead...,图长度一般设置为权重,路网分析,具体到此交通领域,也分为双向通行道路,单向通行道路,交通师父导致临时交通阻塞无法通行(障碍点),不同等级道路对车辆类型限制,以下是不同条件下如何设置通行成本权重相关示例

1.1K30
领券