首页 / 浏览问题 / 组件GIS / 问题详情
如何在空的UGGeoRegion对象中添加数据?
10EXP 2019年10月12日

使用产品:iobjectscpp 9.1.0 操作系统:win10 x64
问题详细描述:

目标是把vector数据转为超图的面数据,所以想法是new一个UGGeoRegion对象,然后添加1个子对象,将点数据插入到子对象中。

源代码如下:

bool Vector2Region(const vector<vector<float>> &polygon, UGGeoRegion *region)
{
	if (!region)
		region = new UGGeoRegion;

	int i;
	vector<UGPoint2D> points;
	for (i = 0; i < polygon.size(); i++)
		points.push_back({ polygon[i][0],polygon[i][1] });
	return region->InsertSub(0, points.data(), points.size());
}

 然而在UGGeoRegion对象无子对象时,调用InsertSub会抛出异常:

f:\buildagent\work\6644596b2c4f480d\01_sourcecode\src\geometry\uggeoregion.cpp:334: OGDCASSERT(nIndex>=0 && nIndex<m_PolyCounts.GetSize()) failed.

所以应该用什么方法在一个空的面对象中添加数据呢?

1个回答

您好,没有子对象,是找不到索引0的子对象的,不能用插入方法,应该使用添加方法,请使用AddSub().
694EXP 2019年10月14日
谢谢!用AddSub()果然可以了
...