在GeoDMS中,如何将字符串坐标转换为dpoint?

时间:2018-11-17 12:30:47

标签: geospatial geo geodms

在GeoDMS GUI版本7.177中,我无法将字符串格式的坐标转换为dpoint格式。

我正试图直接从Kadaster将BAG(basisadministratie gemeenten,荷兰市政当局,一个巨大的地理文件)读取到GeoDMS中。首先将其从.xml转换为.csv,然后将建筑物的形状转换为看上去与Vesta格式相同的格式,例如:

{5:{249943.307,593511.272}{249948.555,593512.791}{249946.234,593520.809}{249940.987,593519.29}{249943.307,593511.272}}

我能够将转换后的CSV文件读取到GeoDMS中,然后还可以将其作为字符串写入.dmsdata格式以提高速度,然后从那里再次将其加载到GeoDMS中。但是,当要将字符串转换为坐标时,出现错误

DPoint Error: Cannot find operator for these arguments:
arg1 of type DataItem<String>
Possible cause: argument type mismatch. Check the types of the used arguments.

我的GeoDMS代码看起来像

unit<uint32> altBag:
    storageName     = 'c:/zandbak/output/bagPND.fss'
,   storageReadOnly     = 'true'
,   dialogType      = 'map'
,   dialogData      = 'geometry'
{
    attribute <string>  pandGeometrie; // works and looks good
    attribute <dpoint>  geometry := dpoint(pandGeometrie); // doesn't work, error above
    attribute <rdc>     geometry2 := pandGeometrie[rdc]; // doesn't work either
}

有没有办法做到这一点?还是不支持将字符串转换为dpoint(或其他类型的点),我应该先将CSV转换为形状文件吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

        attribute<dpoint> Geometry(poly) :=  dpolygon(GeometryStr);

,如果需要特定的投影:

        attribute<rdc_meter> Geometry2(poly) :=  value(GeometryStr, rdc_meter);