Questions tagged «polygon-creation»

创建几何多边形要素的过程。

3
使用ArcGIS Desktop将多边形划分为特定的尺寸?
我在shapefile中有数千个形状不规则的多边形。我希望能够将每个多边形划分为三个区域,并指定这些区域的大小(它们与先前的总面积之和)。子多边形的形状无关紧要,因为这是出于可视化目的。 我该怎么做呢?有没有可以使用的标准算法? 我考虑的一种方法是获取构成多边形的所有点。然后,我将使用一条直线将两个随机连接在一起,分割多边形,然后检查该区域是否在令人满意的公差范围内。如果太小,我会朝一个方向改变点;如果太大,我将改为相反的方向。

2
从折线图层创建多边形图层
我们的系统需要多边形shapefile,代表不相交且几何上有效的(多个)多边形的集合。具体来说,是农田。我们通常以包含线边界折线的折线shapefile形式接收场及其字段的表示,通常会有一些小的地理编码错误,例如悬空的末端。 是否存在将折线图层转换为多边形图层的可靠方法,在该图层中,多边形周长被计算为shapefile中折线周围的最小循环?我知道我可能必须先整理折线。 我主要对涉及Quantum GIS或其他免费工具的解决方案感兴趣,因为我的公司不购买任何专业软件包。



6
从给定的点坐标集中找到边界坐标?
给定一组坐标,我们如何找到边界坐标。 <== 图1 给定上面设置的坐标,我如何获得红色边界上的坐标。边界是由顶点的输入坐标形成的多边形,以使其面积最大化的方式。 我正在开发一个应用程序,该应用程序可以搜索城市 “ x”英里内的房地产。我所拥有的是: 所有属性的坐标。 每个城市的一组坐标(我每个邮编都有一个坐标。由于大多数城市都有多个邮编,所以每个城市都有一组坐标) 我要求最大面积的原因是为了避免出现像下面这样的多边形: <== 图2 我需要的是一种算法,可以得出边界的坐标集。一种算法,可以让我得出图1的边界坐标。

4
为什么有效的多边形重复相同的起点和终点?
在GIS世界中,对于大多数现代格式和标准(例如Shapefile,WKB / WKT,GML,KML等),有效的多边形需要具有闭合的线性环,这是坐标线串,其中第一点是重复点最后一点。例如,一个三角形需要四个点(而不是三个)。 POLYGON ((10 20, 30 60, 50 20, 10 20)) 谁发起了这项公约,为什么?这是预形状文件存储的传统吗?(怎么样MS Windows仍然使用2个字节的CR + LF换行?)其他非GIS标准(如SVG)并不需要这种重复进行编码的多边形。

1
Postgis-将“ geometry_dump”数据类型转换为“ geometry”类型
我正在使用已在其上运行ST_Union()的属性边界的数据集,因此所有多边形在表的一行中都显示为多多边形。我想将它们分开,以便为每种形状得到单独的行/多边形。我试过在其上运行ST_Dump(),它似乎可以分离出数据集中的多边形,但是我无法再在GIS中查看它(我目前正在使用QGIS)。此列的数据类型称其为'geometry_dump',我认为这就是为什么我无法对其进行可视化的原因。当我从QGIS访问我的Postgres数据库时,此新表将列在没有几何图形的数据集的标题下。 有谁知道我可以做些什么将“ geometry_dump”转换为“ geometry”?

2
用Shapely覆盖多边形
我正在尝试使用Shapely(给定的多边形A,B和C)捕获下面指示的所有非重叠多边形。而且,我希望这样做而无需迭代,测试相交等。这个问题的公认答案表达了PostGIS方法,但似乎“工会”对不同的人而言意味着不同的事情。


4
从不相交的多边形创建像Voronoi Diagram这样的镶嵌图
下图显示了该问题: 如(a)中所示,我有一组不相交的多边形,如 PostGIS中的几何。我需要像(b)这样的一组多边形的 “马赛克”,并根据“影响区域”标准进行构建...就像是Voronoi构造(由(c)所示):实际上,如果多边形是要点,影响区域是沃罗诺伊。 总结:我需要一种SQL算法(或一些特定于PostGIS的算法)来生成一组不相交的多边形的“马赛克”。 (也许是一个小的ST_Buffer和ST_Difference操作的循环) PS:我需要像Voronoi一样,忽略空间定界((b)中的方形框)。 这个问题和其他有关线路的问题类似。 编辑(@FelixIP评论后) 我倾向于留在向量宇宙中,以免失去精度(例如,使用ST_DelaunayTriangles并通过原始多边形添加和减去内部,它们采用对偶图解决方案)...一些简单而自动的程序包,例如pprepair(如QGIS拓扑工具那样辅助使用)不是自动的)。但是栅格也许更简单,并且占用更少的CPU。 该“ GRID过程”图示也可以作为解决方案,前提是它可以允许相同的精度和“欧几里得影响区域增长”。 在ARCGIS中,存在着一种称为欧几里得分配的空间分析工具,因此,也许有一种PostGIS类似的解决方案,它从一组多边形开始(对多边形进行分类,栅格化和重新制作)。

1
将栅格数据转换为面数据
我正在尝试将栅格数据转换为面数据。以前,我使用shapefile.py在栅格上的各个纬度/经度上创建点数据。但这将创建大量数据,而对其进行查询将是一个大问题。 因此,如果能够将栅格数据转换为多边形数据会更好。我能够找到SAGA,但似乎它只能转换.grd文件。有没有一种方法可以将GeoTIFF格式或栅格数据集一般转换为Polygon? 更新:使用gdal_polygonize.py 我正在执行以下代码行, gdal_polygonize.py ~/development/Biodiversity/biodiversity/GeoTIFF/bio11.tif -f "ESRI Shapefile" bio11.shp 但是我收到以下错误。我的gdal版本是1.9.0。 Traceback (most recent call last): File "/usr/bin/gdal_polygonize.py", line 34, in <module> import gdal, ogr, osr File "/usr/lib/python2.7/dist-packages/gdal.py", line 2, in <module> from osgeo.gdal import deprecation_warn File "/usr/lib/python2.7/dist-packages/osgeo/__init__.py", line 21, in <module> _gdal = swig_import_helper() File "/usr/lib/python2.7/dist-packages/osgeo/__init__.py", line 17, in …

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)。但是,这种方法不适用于大量的多边形,因为它需要越来越多的代码。我想要一个接受任意数量的多边形并返回其交点的函数。

2
以毫米为单位生成尺寸一致的多边形?
我有一个函数可以创建表示为多边形的“太阳光能”面板。本质上,它创建一个矩形网格,用户可以在其中指定以下参数: 长度 宽度 水平距离 垂直距离 该代码基于插件FeatureGridCreator,但仅专注于多边形方面。它在大多数情况下效果很好,尤其是在创建较大尺寸的多边形(例如,长度和宽度为10m;水平和垂直距离为10m)时。 但是我注意到了两个问题: 指定长度和宽度均小于2m的多边形时,不会创建任何多边形。 当指定具有不同尺寸(例如5m长度和7m宽度)的多边形时,使用“ 测量线”工具测量时尺寸不相同。对于这些尺寸,长度和宽度分别显示为4m和6m。 用于投影和图层的CRS是EPSG:27700,尽管我不认为这会是一个问题。 那么,有谁知道会导致这些问题的原因吗?对于如何改进代码甚至用更好的替代方法替代代码,我也持开放态度。 这是可以在Python控制台中复制的代码,在运行函数之前必须使用相关的CRS选择一个多边形层: from PyQt4.QtCore import QVariant from math import ceil def generate_pv_panels(length, width, distance_x, distance_y): # Define layer properties layer = iface.activeLayer() crs = layer.crs() memory_lyr = QgsVectorLayer("Polygon?crs=epsg:" + unicode(crs.postgisSrid()) + "&index=yes", "PV panels for " + str(layer.name()), "memory") …

1
在QGIS中创建径向扇形叠加
我需要创建一个从关注点辐射出的扇形网格。这是我费力地手工整理的一个示例: 在“ 如何使用ArcGIS for Desktop生成飞镖板shapefile”中找到了两个类似的解决方案。和PostGIS的QGIS带来的Draw风上升,但都不完全符合我的标准。 理想情况下,我需要每个扇区都是一个单独的多边形(出于数据分析目的),并能够使用参数控制扇区数和径向距离为不同的站点创建此叠加层。 谁能建议或提供一种在QGIS中轻松生成这些形状的方法?我以为这是一个相对常见的任务,所以不想花大力气重新发明轮子,但我一直在努力寻找解决方案,而作为一个完整的新手,我将需要很长时间才能提出解决方案。从零开始的解决方案。

1
Postgis-挤出多边形
我想在Postgis中拉伸多边形以创建伪3D效果。为此,我编写了一个粗略的函数来实现它。这是非常多的测试代码,它为多边形上的每个点创建一个新的Y顶点,然后通过返回原始点将其关闭:- CREATE OR REPLACE FUNCTION public.extrude_polygon(wkb_geometry_param geometry, height integer, simplify boolean DEFAULT false) RETURNS geometry AS $BODY$ DECLARE f int; ret_geom geometry; wkb_geometry geometry; BEGIN --convert polygon to linestring IF ST_GeometryType(wkb_geometry_param) != 'ST_Polygon' THEN RETURN NULL; END IF; IF simplify THEN wkb_geometry = ST_Simplify(ST_Transform(ST_Exteriorring(wkb_geometry_param), 27700), 0.5); ELSE wkb_geometry = ST_Transform(ST_Exteriorring(wkb_geometry_param), …

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.