首页 > 其他分享 >PostGIS:ST_LineLocatePoint函数

PostGIS:ST_LineLocatePoint函数

时间:2023-07-22 17:23:34浏览次数:35  
标签:函数 geometry 线段 PostGIS ST LineLocatePoint 返回值

ST_LineLocatePoint 是 PostGIS 中的一个函数,用于计算点在线段上的位置。

函数的语法如下:

ST_LineLocatePoint(geometry linestring, geometry point);

参数说明:

  • geometry linestring: 表示线段的几何图形对象,通常是一个 LineString 类型的几何图形。
  • geometry point: 表示要计算位置的点的几何图形对象,通常是一个 Point 类型的几何图形。

函数返回值是一个介于 0 到 1 之间的小数,表示点在线段上的位置。返回值的解释如下:

  • 当返回值为 0 时,表示点在线段的起始点上。
  • 当返回值为 1 时,表示点在线段的终点上。
  • 当返回值在 0 到 1 之间时,表示点在线段的内部,在起始点和终点之间。

例如,考虑一个线段 AB 和一个点 P。使用 ST_LineLocatePoint 函数,我们可以确定点 P 在线段 AB 上的位置。如果函数返回值为 0.5,则表示点 P 在线段 AB 的中点上:

-- 沿线段定位点
SELECT ST_LineLocatePoint('LINESTRING(0 0, 2 2)', 'POINT(1 1)');
-- 结果: 0.5

对于多段线ABC和一个点P,使用 ST_LineLocatePoint 函数,同样可以确定点 P 在多段线 ABC 上的位置:

--沿多段线定位点
SELECT ST_LineLocatePoint('LINESTRING(0 0, 2 2,3 2)', 'POINT(1 1)');
-- 结果:0.3693980625181293

ST_LineLocatePoint 函数对于空间分析和几何计算非常有用。它可以帮助确定点在线段上的位置,用于线段和点之间的关联和距离计算等操作。

标签:函数,geometry,线段,PostGIS,ST,LineLocatePoint,返回值
From: https://www.cnblogs.com/marshban/p/17573743.html

相关文章

  • 8.C++中的struct和class的区别
    C++中class默认是私有,struct默认是公有这是两者唯一的区别。该默认体现在成员和继承两方面,不指定成员类型的时候class默认是私有,struct默认是公有,class默认是私有继承,struct默认是公有继承。其他情况可以使用class的地方struct也能使用。......
  • redis cluster 删除key
    RedisCluster删除Key简介Redis是一个开源的内存数据库,它提供了多种数据结构和丰富的功能。RedisCluster是Redis的分布式解决方案,它允许将数据分布在多个节点上,提高了数据的可用性和性能。在RedisCluster中删除Key是一项常见的操作。本文将介绍如何使用RedisCluster删除Key,并......
  • C++ stl锁的使用
    我们在日常开发中经常要用到锁,这里记录一下实际开发过程中stl提供的锁的使用。1、读写锁读写锁算是用到的比较多的一种类型,主要实现对于同一个共享数据区,一个时间点只能有一个线程进行写(增删改),但可以有多个线程同时读(查)。换句话说,当有一个线程写的时候,其他线程(不管是读线程还是......
  • spark开启historyserver
    Spark开启HistoryServer简介在使用ApacheSpark进行大数据处理时,我们常常需要查看作业的执行历史和性能指标。Spark提供了一个称为HistoryServer的组件,它能够保存和展示Spark应用程序的执行历史数据。本文将介绍如何开启Spark的HistoryServer,并提供详细的步骤和代码示例。步......
  • redis统计list大小
    Redis统计List大小Redis是一种基于键值对的内存数据库,支持多种数据结构,其中之一就是列表(List)。列表是一种有序的字符串列表,可以在列表的两端进行插入和删除操作。在一些场景中,我们需要统计Redis中列表的大小,本文将介绍如何使用Redis命令来统计列表的大小,并提供代码示例。1.Red......
  • String常用方法
    String常用方法packagecom.tedu.api01.string_;/***@authorLIGENSEN*Date:2023/7/2214:09*/publicclassStringMethods{publicstaticvoidmain(String[]args){Strings1="Chinna";System.out.println(s1);//Ch......
  • SQL日期操作函数(CONCAT、DATE_FORMAT、LAST_DAY)
    获取某月底日期:SELECTLAST_DAY('2021-07-01')ASmonth_end_date;拼接年月格式:CONCAT(DATE_FORMAT(hp.planned_payment_date,'%Y-%m'),'-01')如果数据库内存的是2023-07-19经过处理后会变成:2023-07-01SELECTbp.UNIT_ID......
  • pyhon 基础学习笔记(一)List
    1.有两个索引 2索引的切片L=[1,2,3,4,5,6]L[start:stop:step]如L[1,2,2] 3.列表增加元素L.append(9),L.append([2,3])尾部追加L.extend([1,2,3]) 尾部追加L.insert(3,5)位置3插入5L[2:2]=[8,9] 下标为2的位置插入8,9 3.列表删除元素L.remove(4)删除元素4......
  • 112.STL中的array
    112.STL中的array1.array介绍在C++标准库中,array是固定大小的序列容器,array中包含特定个数并且严格按照线性序列排序的元素。因此array允许对元素进行随机访问,指向某一元素的指针可以通过偏移访问其他元素。在array内部,它只保存自己包含的元素,其他任何信息都不保存,包括自身的大......
  • ofstream 追加模式
    #includeusingnamespacestd;intmain(){ofstreamoutfile("example.txt",ios::app);if(outfile.is_open()){outfile<<"Thisisanewline.\n";outfile.close();}elsecout<<"Una......