Questions tagged «intersection»

当询问与功能重叠的地方有关的问题时,请使用此标签。

8
选择在PostGIS中不相交的要素
在我看来,这似乎是一个简单的问题(可能是),但我似乎找不到能给我答案的例子。使用PostGIS,我只想选择不在多边形范围内的点。就我所知,这最终是ST_Intersects的逆函数。 示例:我有一个taxlot层和一个地址点层。我假设我应该使用ST_Intersects,但是如何告诉它进行反向选择?我以为可能在下面的代码前添加一个NOT语句,但这没有用。 CREATE table t_intersect AS SELECT hp.gid, hp.st_address, hp.city, hp.st_num, hp.the_geom FROM public.parcel as par, public.housepoints as hp WHERE ST_Intersects(hp.the_geom,par.the_geom);

4
使用PostGIS基于交点分离多边形
我有一个多边形的PostGIS表,其中一些相互相交。这就是我想要做的: 对于由id选择的给定多边形,请给我所有相交的多边形。基本上,select the_geom from the_table where ST_Intersects(the_geom, (select the_geom from the_table where source_id = '123')) 从这些多边形中,我需要创建一个新的多边形,使交点成为一个新的多边形。因此,如果多边形A与多边形B相交,我将得到3个新多边形:A减去AB,AB和B减去AB。 有任何想法吗?

3
使用QGIS中的交点工具忽略无效的输入功能?
在QGIS 2.18中,当我使用“矢量”>“地理处理工具”>“相交”工具时,我能够检查一个选项“忽略NULL几何[可选]”。 现在,我已经下载了QGIS 3.2,该选项不再存在。但是,当我尝试在正在处理的两层之间创建交集时,会收到一条消息,提示某处存在无效的几何图形,应该对其进行修复或“将处理设置更改为'忽略无效的输入要素' ' 选项。” 但是该选项不存在!或者,如果确实存在,我只是在任何地方都找不到。 有谁知道如何/在QGIS 3.2中更改此设置?

8
修复数千个小的重叠多边形?
我正在使用ArcMap 10.3。 我有一层不同的土地利用类型。我发现许多多边形相互重叠,因此同一多边形具有两种不同的土地利用类型。 使用@radouxju的答案,我为土地使用层构建了一个拓扑(使用不可重叠的规则)。然后,我使用merge修复了大的重叠多边形。 但是,我有数千个小的重叠多边形。我可以手动修复所有这些问题,这将需要一些时间。 有没有更快速的方法来解决所有这些错误? 我已经更新了地图以显示所有土地使用类型。多边形彼此重叠;不碎。

5
查找两个多边形是否在Python中相交?
我正在寻找一种算法,高级解决方案,或者甚至一个可以帮助我确定Python中两个多边形是否相交的库。 我在两个不同的数组中具有两个多边形的顶点(这些是没有任何孔的单部分多边形)。多边形是2D(即仅X和Y坐标) 我想制作一个函数,该函数将返回一个布尔值,指示这两个多边形是否相交。 请注意,我不能使用arcpy或其中的任何arcgis组件。 您可以建议这样做的算法或库吗?

4
将相交的多边形合并为同一要素的一部分
我不是GIS专业人员,所以我希望我使用正确的措词,至少希望您理解我的问题。 假设要素A中有五个多边形。在shapefile中,有更多要素。在要素A中,现有五个中的两个多边形相交。我想将两条线合并,这样重叠的线将被删除,结果是一个多边形。 可能的解决方案将像这样工作: 我选择“激活”所有五个多边形的特征 我切换到编辑模式 我选择两个多边形的点 我使用功能MERGE-SELECTED-POLYGONS 到目前为止,我仅找到用于合并对象(功能?),合并shapefile等的函数。 有没有功能MERGE-SELECTED-POLYGONS?

2
在R中提取相交区域
我有两个多边形。一个包含字段(X,Y,Z),另一个包含土壤类型(A,B,C,D)。我想知道每个字段的哪个区域包含哪种类型的土壤。我尝试了以下方法: library(rgdal) library(rgeos) Field<-readOGR("./","Field") Soil<-readOGR("./","Soil") Results<-gIntersects(Soil,Field,byid=TRUE) rownames(Results)<-Field@data$FieldName colnames(Results)<-Soil@data$SoilType > Results A B C D Z TRUE FALSE FALSE FALSE Y FALSE TRUE TRUE FALSE X TRUE TRUE TRUE TRUE 并告诉我哪个字段包含哪种土壤类型,并取得了良好的效果。但是,如何获得该区域呢?

1
寻找最接近的线段以定型使用?
背景 从一个已知的点开始,我需要针对MultiLineStrings表建立最近的周围“可见周长”,如图所示。 我在此站点上搜索了许多术语(例如,最小边,最小周长,最近的邻居,剪辑,包含多边形,可见性,捕捉,切割节点,光线跟踪,洪水填充,内部边界,路线,凹面船体),但是找不到与该场景匹配的任何先前问题。 图表 绿色圆圈是已知点。 黑线是已知的MultiLineStrings。 灰线表示从已知点开始的径向扫描。 红点是径向扫描和MultiLineStrings的最近交点。 参量 该点永远不会与MultiLineStrings相交。 该点将始终名义上位于MultiLineString中。 MultiLineString将永远不会完全包围该点,因此周长将为MultiLineString。 将有一个包含大约1,000个MultiLineString的表(通常包含大约100点的单行)。 考虑的方法 通过从已知点构造一系列线(例如,以1度为增量)进行径向扫描。 用MultiLineStrings建立每个径向扫掠线的最近交点。 当一条径向扫掠线不与任何MultiLineString相交时,这将指示周长中的间隙,该间隙将容纳在周长MultiLineString结构中。 摘要 尽管此技术将找到最接近的相交点,但不一定要找到所有最接近的周界节点,这取决于径向扫描的分辨率。谁能推荐一种替代方法来建立所有周界点,或以某种形式的缓冲,扇形或偏移来补充径向扫描技术? 软件 我的首选是使用SpatiaLite和/或Shapely作为解决方案,但是欢迎可以使用开源软件实现的任何建议。 编辑:工作解决方案(基于@gene的回答) from shapely.geometry import Point, LineString, mapping, shape from shapely.ops import cascaded_union from shapely import affinity import fiona sweep_res = 10 # sweep resolution (degrees) focal_pt = Point(0, 0) …

3
使用PostGIS识别道路交叉口
我正在尝试确定道路相交的位置,并在此相交处定点,并列出构成该相交处的道路数量。 我想知道是否有使用ST_NumPoints的方法来实现此目的,但是我不太清楚应该怎么做。我所做的是使用以下代码创建线相交的点表: CREATE TABLE test_points as SELECT ST_Intersection(a.geom, b.geom), a.gid FROM roads as a, roads as b WHERE ST_Touches(a.geom, b.geom); 如果我在道路样本上运行此代码,则会得到以下点网格(道路仅供参考): 如果检查这些点之一,就会发现有很多点彼此叠放: 这里的GID是道路ID,但我不明白为什么会有很多点。我可以理解中央道路交叉路口被计算出的4个点,但是这里列出了12个点。有没有更好的方法在PostGIS中执行此计算?

6
如何使用ST_Intersection?
以下是我要执行的操作的简要摘要:Postgres中有3个表,“ a”和“ b”,每个表都有一个Polygon列,而“ c”有一个Point列。我在这里要做的是获取“ a”,“ b”和“ c”之间的几何形状相交,并在OpenLayers矢量层上显示此类几何形状。 我已经知道如何在OpenLayers中显示字符串中的任何几何形状,但是我在使用PostGIS的ST_Intersection函数时遇到了麻烦,我正在这样做: SELECT ST_Intersection(a.geom, b.geom) as inter from a, b; 其中a.geom和b.geom都是几何列,并且我收到此错误消息: NOTICE: TopologyException: found non-noded intersection between 515172 2.14408e+06, 497067 2.13373e+06 and 501321 2.13546e+06, 471202 2.14843e+06 500621 2.13576e+06 ERROR: GEOS Intersection() threw an error! 我也尝试使用ST_AsText将生成的几何图形表示为文本,如下所示: SELECT ST_AsText(ST_Intersection(a.geom, b.geom)) as inter from a, b; 但它向我发送此错误消息: …

2
剪辑多边形并保留数据?
我有以下两个多边形: library(sp); library(rgeos); library(maptools) coords1 <- matrix(c(-1.841960, -1.823464, -1.838623, -1.841960, 55.663696, 55.659178, 55.650841, 55.663696), ncol=2) coords2 <- matrix(c(-1.822606, -1.816790, -1.832712, -1.822606, 55.657887, 55.646806, 55.650679, 55.657887), ncol=2) p1 <- Polygon(coords1) p2 <- Polygon(coords2) p1 <- Polygons(list(p1), ID = "p1") p2 <- Polygons(list(p2), ID = "p2") myPolys <- SpatialPolygons(list(p1, p2)) spdf1 = …

3
通过两层之间的重叠创建新层?
我是桌面GIS的新手,在缺少GIS术语的适当术语的情况下,我会尝试提出以下要求: 如果QGIS像Photoshop,我想从一个图层中进行选择,然后将该选择与另一个图层进行匹配,以得到两者之间的重叠,并从该重叠中创建一个新图层。 用另一种方式表示: 我想从每个挪威城市中选择所有土地。在我拥有的shapefile中(您可以在此处下载:http : //www.statkart.no/? module=Files;action=File.getFile;ID=41973),将市政边界定为“ N5000_AdministrativGrense”(仅边界)和“ N5000_AdministrativFlate”(每个城市的边界和土地)。该数据(每个城市的边界和土地)过于管理-包括海洋,我们在挪威有许多峡湾。我需要减去海洋的陆地。 陆地位于“ N5000_ArealdekkeFlate”层中-至少对于新手来说如此。 所以-我想找到陆地(仅陆地,没有海洋)和市政边界之间的交点,并创建一个新图层,即所有没有海洋的市政。 我在Mac上以QGIS作为安装工具。所有提示,指示和帮助都将不胜感激。

3
在Python中高效获取多个多边形的交集
我想得到多个多边形的交集。使用Python的shapely程序包,我可以使用intersection函数找到两个多边形的交点。是否有类似的有效函数来获取多个多边形的交集? 这是一个代码片段,以了解我的意思: from shapely.geometry import Point coord1 = ( 0,0 ) point1 = Point(coord1) circle1 = point1.buffer(1) coord2 = ( 1,1 ) point2 = Point(coord2) circle2 = point2.buffer(1) coord3 = ( 1,0 ) point3 = Point(coord3) circle3 = point3.buffer(1) 可以找到两个圆的交点circle1.intersection(circle2)。我可以找到所有三个圆的交点circle1.intersection(circle2).intersection(circle3)。但是,这种方法不适用于大量的多边形,因为它需要越来越多的代码。我想要一个接受任意数量的多边形并返回其交点的函数。


3
与多边形相交时,Rgeos会删除关联的值
我正在尝试将两个SpatialPolygonsDataFrames相交,并得到一个SpatialPolygonsDataFrame作为结果。不幸的是,使用gIntersectionfrom函数rgeos(该函数可以快速地与多边形相交),我似乎无法检索到关联的数据框。考虑以下示例: > fracPoly <- gIntersection( toSingle, fromSingle ) > class(toSingle) [1] "SpatialPolygonsDataFrame" > class(fromSingle) [1] "SpatialPolygonsDataFrame" > class(fracPoly) [1] "SpatialPolygons" 我可以编写一个包装函数来处理的传递data.frames,但是正确完成所有检查将是一个小小的麻烦,在我希望有人可以确认没有更好的方法或将我指向另一个函数(或选项)之前,这会是一个小麻烦。为gIntersection),这将使我保留关联的data.frames。 更新资料 经过进一步的思考,这可能是的非常刻意的行为gIntersection。毕竟,您传递了两个SPDF中的data.frame吗?因此,我可能必须编写一个将两者合并的包装器。

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.