Questions tagged «linestring»

一系列点坐标,指向连接它们的线段,用于表示一维特征或对象。


1
在PostGIS中检测点是在线的左侧还是右侧?
我在postgis中有一个线串表和一个点​​表。 我知道最接近任何给定点的线。我需要知道的是那条线的哪一侧。我想我必须通过创建从给定点到该线的垂直线(该线上的最接近点)然后比较坐标来做到这一点,但是我不知道该怎么做,如果这是正确的方法,因为线改变了方向。 我做了一张照片来说明我的任务。 该线本身为黑色,其方向以绿色箭头显示。我需要在点表中添加一个“侧”列,以便红点的值应为“ right”,蓝点的值应为“ left”。 有人可以给出一个计算点的“边”值的SQL代码示例吗?

3
如何创建线以可视化PostGIS中多边形要素之间的差异?
我有一个polygon_b带有某些面要素的PostGIS表。还有一个表格polygon_a,其中包含与多边形相同的多边形,polygon_b但变化较小。现在,我想创建线条以可视化多边形要素之间的差异。 我想这ST_ExteriorRing和ST_Difference将做的工作,但在WHERE子句似乎是相当棘手。 CREATE VIEW line_difference AS SELECT row_number() over() AS gid, g.geom::geometry(LineString, yourSRID) AS geom FROM (SELECT (ST_Dump(COALESCE(ST_Difference(ST_ExteriorRing(polygon_a.geom), ST_ExteriorRing(polygon_b.geom))))).geom AS geom FROM polygon_a, polygon_b WHERE -- ? ) AS g; 谁能帮我? 编辑1 正如“倾斜”所发布的,我已经尝试过,ST_Overlaps(polygon_a.geom, polygon_b.geom) AND NOT ST_Touches(polygon_a.geom, polygon_b.geom)但结果与预期不符。 CREATE VIEW line_difference AS SELECT row_number() over() AS gid, g.geom::geometry(LineString, your_SRID) AS …

1
如何查看更新的Shapefile中的哪些行已更改?
我正在使用县的GIS数据更新OpenStreetMap中的道路。我有一个它们去年发布的副本,一个刚刚发布的副本,我想找到所有属性或几何形状发生变化的LineString。这将帮助我确保在OpenStreetMap中更新所有新的和经过修改的街道。 我想使用FOSS软件(例如QGIS或Python / OGR)进行此操作。街道路段应具有唯一的标识符,因此,我唯一的想法是编写一个Python脚本,该脚本可同时打开Shapefile,查找新区中不存在的任何路段(添加的路段)和反向路段(已删除的路段) ,然后循环比较匹配的对,比较它们的组成坐标以查看是否有任何变化。 这是一个好方法吗?有没有更简单的方法?


2
在PostGIS中对连接的线串进行分组?
我有一张基于一组属性(假设是speed_limit < 25)选择的街道表。有些街道在本地是连续的。我想将这些连接的线串集合归为GeometryCollections。在下图中,将有两个GeometryCollections:一个带有红线,一个带有蓝线。 我尝试按照以下方式运行几个“分解,分解”查询: SELECT (ST_Dump(st_union)).geom FROM (SELECT ST_Union(geom) FROM roads) sq 在尝试了所有方法后,我要么获得了单个特征(ST_Union),要么得到了原始几何形状(ST_Dumpof ST_Union)。 也许可以用某种WITH RECURSIVE魔术来做到这一点?

2
如何在QGIS中将线串导出到GPX文件?
我在QGIS的向量层中有一个线串。如何将这个线串提取/保存为GPX文件? 我尝试选择线串,然后右键单击矢量层并选择“另存为...”,然后选择GPX格式并保存。但是我得到了这个错误信息: 导出到矢量文件失败。错误:创建字段code_06失败(OGR错误:GPX模式不支持名称为“ code_06”的字段。请使用GPX_USE_EXTENSIONS创建选项来允许使用该元素。) GPX文件已创建,但不包含坐标。我应该做些设置来避免此错误吗? 如何在QGIS中将线串导出到GPX文件?
11 qgis  export  linestring  gpx 

2
QGIS提取具有M值的节点以进行线性参考
我在sqlite数据库中有一个MultiLineStringZM层,并且试图在顶点处可视化度量或m值。我尝试查找有关如何在QGIS中执行此操作的信息,并且我能够收集到的所有信息是,这不可能直接从线串图层中实现,并且需要将点提取到单独的图层中。 我使用Vector-> Geometry Tools-> Extract nodes创建了一个多点层,该多层代表了我的线串层的顶点,但是该过程会丢失这些顶点的m值。我需要通过将m值保存为点的属性或其他方式来保留m值? 在内部,我们有一个命令行工具可以将线串转换为点shapefile,并将m值存储为每个点的属性,我已经使用它来验证是否有m值分配给了顶点,我可以使用如果必须的话,但是如果可以直接在QGIS内部完成,那就太好了。 编辑 -重复上述内容,但再次强调了我们确实有一个命令行工具可以使用GDAL库实现我要查找的结果,因此该解决方案仅显示了部分答案PyQGIS不是我要找的答案。我正在寻找内置工具,为QGIS准备的插件或可以从MultiLineStringZM或LineStringZM几何图形提取(而不是创建/生成)并可视化m值的完整脚本。

2
PostGIS-在直线或多边形内获取点
我需要获取直线或多边形的中心点才能制作marker我的应用。这样,当您单击标记时,就会显示几何图形(直线或多边形)。我曾经ST_Centroid使它工作。 结果是我所期望的,使某些多边形或线的质心超出了几何形状。我想要这些线或多边形是在几何体内部获得“最中心点”。 我怎样才能做到这一点?有解决方案吗?


4
如何从[LINE | MULTILINE] STRING提取POINT
我想在其中创建一个vectorLayer,QGIS以显示形成DB LINESTRING或MULTILINESTRING存储在PostGISDB中的所有点。 我认为我需要将LINESTRING(或MULTILINESTRING)的所有点转换为POINT。 第一个问题: 有PostGIS功能吗? 第二个问题: 如果要从结果POINT表中排除重复的点,该怎么办?

3
如何使用postgis将等值线转换为等多边形?
我有一张等值线的postgis表,其定义如下: CREATE TABLE myisolines ( gid serial NOT NULL, isotime timestamp without timezone, val numeric(10,4), geom geometry(LineString,4326) ); 在外观上,此线串对象如下所示: 我知道数据的空间范围,因此可以添加一个Bbox,这样LineStrings可以是封闭的。 我想myisopolygons从myisolines具有多边形的表格中创建一个等值多边形表格,该表格不会重叠,而是创建一个连续的曲面,并具有一列等值线val最低val的列,由此形成多边形。我知道它可以由自封闭的等值线(孤岛)形成,也可以由用bbox封闭的等值线形成,在这种情况下,val应从特定的等值线中获取。在视觉上,它应该看起来像这样: 我以为可以以某种方式创建拓扑,然后将面转换为多边形,但是我不知道如何正确地进行。如何才能做到这一点? 另一个选择是在bbox和每个创建的多边形之间递归使用差异函数,但我想这不是正确的方法,而且绝对不快。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.