首页 > 解决方案 > 在 GeoDMS 中,我试图缓冲一个多边形,但出现错误

问题描述

在 GeoDMS 中,我想缓冲一个 5 米的多边形集,但出现错误:

polygon_i4D Error: Cannot find operator for these arguments:
arg1 of type DataItem<FPolygon>
arg2 of type DataItem<Float64>

有人可以帮我解决这个问题吗?

unit<uint32> shapes 
:   StorageName     = "%SourceDataDir%/CBS/bevolkingskern_2011.shp"
,   StorageType     = "gdal.vect"
,   StorageReadOnly = "True"
,   FreeData = "False" 
,   SyncMode = "None" 
{
    attribute<geometries/rdc> geometry (poly) ;
    attribute<geometries/rdc> buffer (poly)          := polygon_i4D(geometry, 5d);
}

标签: buffergeospatialgeodms

解决方案


为缓冲区属性配置的表达式会产生一个膨胀的多边形。

使用 - 运算符查找缓冲区(膨胀区域但不是原始区域),例如:

attribute<geometries/rdc> buffer :=
   value(polygon_i4D(ipolygon(geometry), 5d) - ipolygon(geometry), geometries/rdc);

推荐阅读