В GeoDMS я пытаюсь буферизировать полигон, но получаю ошибку

#buffer #geospatial #geodms

#буфер #геопространственный #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);
}
  

Ответ №1:

Настроенное выражение для атрибута buffer приводит к раздутому полигону.

Используйте — operator, чтобы найти буфер (увеличенную область, но не исходную область), например:

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

Ответ №2:

Можете ли вы попробовать:

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