本文整理汇总了C++中OGRGeometry::getLinearGeometry方法的典型用法代码示例。如果您正苦于以下问题:C++ OGRGeometry::getLinearGeometry方法的具体用法?C++ OGRGeometry::getLinearGeometry怎么用?C++ OGRGeometry::getLinearGeometry使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OGRGeometry
的用法示例。
在下文中一共展示了OGRGeometry::getLinearGeometry方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getGeometryTypeOfElem
void ILI2Reader::SetFieldValues(OGRFeature *feature, DOMElement* elem) {
int type = 0;
//recursively search children
for (DOMElement *childElem = (DOMElement *)elem->getFirstChild();
type == 0 && childElem && childElem->getNodeType() == DOMNode::ELEMENT_NODE;
childElem = (DOMElement*)childElem->getNextSibling()) {
type = getGeometryTypeOfElem(childElem);
if (type == 0) {
if (childElem->getFirstChild() && childElem->getFirstChild()->getNodeType() == DOMNode::ELEMENT_NODE) {
SetFieldValues(feature, childElem);
} else {
char *fName = fieldName(childElem);
int fIndex = feature->GetFieldIndex(fName);
if (fIndex != -1) {
char * objVal = getObjValue(childElem);
if (objVal == NULL)
objVal = getREFValue(childElem); // only to try
feature->SetField(fIndex, objVal);
CPLFree(objVal);
} else {
CPLDebug( "OGR_ILI","Attribute '%s' not found", fName);
m_missAttrs.push_back(fName);
}
CPLFree(fName);
}
} else {
char *fName = fieldName(childElem);
int fIndex = feature->GetGeomFieldIndex(fName);
OGRGeometry *geom = getGeometry(childElem, type);
if (fIndex == -1) { // Unknown model
feature->SetGeometryDirectly(geom);
} else {
OGRwkbGeometryType geomType = feature->GetGeomFieldDefnRef(fIndex)->GetType();
if (geomType == wkbMultiLineString || geomType == wkbPolygon) {
feature->SetGeomFieldDirectly(fIndex, geom->getLinearGeometry());
delete geom;
} else {
feature->SetGeomFieldDirectly(fIndex, geom);
}
}
CPLFree(fName);
}
}
}