我目前有一个点vectorvectorcorners;我之前存储给定多边形角点的位置。鉴于此,我确信这些点形成了一个不包含任何自相交边的简单多边形。然而,在存储这些顶点的过程中,它们相互连接的顺序并没有被保留。我现在有一个函数,给定一个点vector,将它们连接起来并绘制一个闭合图形。但是,我需要按照需要连接的顺序为该函数提供点序列。任何人都可以建议我可以按正确顺序对这些点进行排序的方法吗?它们形成一个非常简单的凹多边形,而不是凸包。在所有(7)个点中找到中心点的算法也会有所帮助:) 最佳答案 凹多边形没有唯一解:凸多边形可以唯一地
所以我想将所有相互关联的多边形加入一个multi_polygon中。怎么办?我们有这样的图像(一个绿色multi_polygon)我们想要优化(我们可以看到黄色虚线-显然是对multi_polygon的每个多边形而不是一般的multi_polygon执行的简化结果):这里是生成这种图像的可编译代码:#include#include#include#include#include#include#include#includetemplatevoidcreate_svg(std::stringconst&filename,Geometry1const&a,Geometry2const&b
我正在使用mongo存储一些地理定位数据,目标是使用$geointersect检索它们。具体来说,我将此文档存储在我的数据库中:{"loc":{"geometry":{"type":"Polygon","coordinates":[[[-179.875,-89.875],[179.875,-89.875],[179.875,89.875],[-179.875,89.875],[-179.875,-89.875]]]},"crs":{"type":"name","properties":{"name":"urn:x-mongodb:crs:strictwinding:EPSG:4326"
当点被硬编码且没有错误或警告时,此代码选择表中的所有行:SELECT*FROMlat_lngWHEREContains(GeomFromText('POLYGON((00,0100,100100,1000,00))'),GeomFromText('Point(5050)'))OR由变量$var="5050"定义(没有错误或警告)SELECT*FROMlat_lngWHEREContains(GeomFromText('POLYGON((00,0100,100100,1000,00))'),GeomFromText('Point($var)'))但是,当我使用名为“位置”的列来定义点时,
我正在使用一个MySQL数据库,其中的多边形以WKT格式存储。数据库中的许多多边形都有重复的点(例如,在下面的示例中,点-122.32350247.600959重复了三次)。尝试在这些多边形上调用RGeo::Cartesian::Factory.parse_wkt()时,结果为零。如何在不修改多边形数据的情况下从这些多边形创建RGeo对象。poly="MULTIPOLYGON(((-122.36216347.618641,-122.34462147.592555,-122.33201747.592458,-122.3274847.59241,-122.32610947.592652,-
有谁知道从一个点到给定距离内获取MySQL数据库中所有多边形的方法吗?实际距离并不那么重要,因为它是稍后为每个找到的多边形计算的,但是仅对“接近”的多边形进行计算将是一个巨大的优化。我看过MBR并包含函数,但问题是一些多边形没有包含在围绕该点绘制的边界框内,因为它们非常大,但它们的一些顶点仍然很近。有什么建议吗? 最佳答案 慢速版本(没有空间索引):SELECT*FROMmytableWHEREMBRIntersects(mypolygon,LineString(Point(@X-@distance,@Y-@distance),Po
我在mysql中创建了一个表来存储多边形数据:CREATETABLEgeom(gGEOMETRY);然后我使用以下语法向其中插入了一个多边形:INSERTINTOgeom(g)VALUES(PolygonFromText('POLYGON((9.19058685345.464518970,9.19060268645.463993916,9.19157247145.464001929,9.19161332545.463884676,9.19213613045.463880767,9.19211150945.464095594,9.19242796145.464117804,9.19241
我在MySQL5.5中创建了一个表(municipal_border),它包含一些边界。CREATETABLE`municipal_border`(`boundary`polygonNOTNULL,`municipalID`int(10)NOTNULL,)ENGINE=InnoDB字段municipalID不是唯一的。我正在使用下面的代码来测试一个点是否属于多边形。set@r=(SELECTmunicipal_border.boundaryFROMmunicipal_borderWHEREmunicipalID=9001);set@p=GeomFromText('POINT(24.16
我在MySQL中有一列WKTPOLYGON值(我继承了数据库)。在Googlemap上查询和呈现多边形。由于谷歌地图多边形覆盖需要一个点数组,之前的用户将WKT值转换为坐标对并将它们存储在另一列中。这实际上工作得很好,但还不够好。其一,转换偶尔会出错,其二,我正在寻找加快转换速度的方法。回复。第一个问题,我必须重新实现它,并且正在寻找一个转换器,将WKT多边形转换为一串坐标。我想我可以用它来编写一个存储过程来查询WKT列并吐出一串可以很容易地转换为谷歌地图多边形的JSON文本,或者甚至预处理所有WKT多边形并将它们存储为文本它已经完成,但这次使用了正确的值。所以,我真的在寻找一个函数来
我正在尝试在表列(bboxpolygondefaultNULL)上创建空间索引,但出现错误:SPATIAL索引的所有部分都必须为NOTNULL。问题是我认为有些行会包含NULL。问题是:有没有办法用默认的空多边形声明列? 最佳答案 只需定义列NOTNULL且无默认值。空间列有一个隐含的默认值“空”。很不幸,因为您在插入时收到警告,说没有默认值;但你也不能有一个明确的默认值。 关于mysql-如何在MySQL中为空间列定义空多边形?,我们在StackOverflow上找到一个类似的问题: