亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ili2reader.cpp

?? 支持各種柵格圖像和矢量圖像讀取的庫(kù)
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
  // compile ili models  model=iom_compileIli(CSLCount(modelFilenames), modelFilenames);  if(!model){    CPLError( CE_Failure, CPLE_FileIO, "iom_compileIli failed." );    iom_end();    return FALSE;  }  // read tables  modelelei=iom_iteratorobject(model);  modelele=iom_nextobject(modelelei);  while(modelele){    const char *tag=iom_getobjecttag(modelele);    if (tag && EQUAL(tag,"iom04.metamodel.Table")) {      const char* topic = iom_getattrvalue(GetAttrObj(model, modelele, "container"), "name");      if (!EQUAL(topic, "INTERLIS")) {        const char* layername = GetLayerName(model, modelele);        OGRLayer* layer = new OGRILI2Layer(layername, NULL, 0, wkbUnknown, NULL);        m_listLayer.push_back(layer);        CPLDebug( "OGR_ILI", "Reading table model '%s'", layername );        // read fields        IOM_OBJECT fields[255];        IOM_OBJECT roledefs[255];        memset(fields, 0, 255);        memset(roledefs, 0, 255);        int maxIdx = -1;        IOM_ITERATOR fieldit=iom_iteratorobject(model);        for (IOM_OBJECT fieldele=iom_nextobject(fieldit); fieldele; fieldele=iom_nextobject(fieldit)){          const char *etag=iom_getobjecttag(fieldele);          if (etag && (EQUAL(etag,"iom04.metamodel.ViewableAttributesAndRoles"))) {            IOM_OBJECT table = GetAttrObj(model, fieldele, "viewable");            if (table == modelele) {              IOM_OBJECT obj = GetAttrObj(model, fieldele, "attributesAndRoles");              int ili1AttrIdx = GetAttrObjPos(fieldele, "attributesAndRoles")-1;              if (EQUAL(iom_getobjecttag(obj),"iom04.metamodel.RoleDef")) {                //??ili1AttrIdx = atoi(iom_getattrvalue(GetAttrObj(model, obj, "oppend"), "ili1AttrIdx"));                roledefs[ili1AttrIdx] = obj;              } else {                fields[ili1AttrIdx] = obj;              }              if (ili1AttrIdx > maxIdx) maxIdx = ili1AttrIdx;              //CPLDebug( "OGR_ILI", "Field %s Pos: %d", iom_getattrvalue(obj, "name"), ili1AttrIdx);            }          }          iom_releaseobject(fieldele);        }        iom_releaseiterator(fieldit);        for (int i=0; i<=maxIdx; i++) {          IOM_OBJECT obj = fields[i];          IOM_OBJECT roleobj = roledefs[i];          if (roleobj) AddField(layer, model, roleobj);          if (obj) AddField(layer, model, obj);        }      }    }    iom_releaseobject(modelele);    modelele=iom_nextobject(modelelei);  }  iom_releaseiterator(modelelei);  iom_releasebasket(model);  iom_end();  return 0;}char* fieldName(DOMElement* elem) {  string fullname;  int depth = 0;  DOMNode *node;  for (node = elem; node; node = node->getParentNode()) ++depth;  depth-=3; //ignore root elements// We cannot do this sort of dynamic stack alloc on MSVC6.//  DOMNode* elements[depth];  DOMNode* elements[1000];  CPLAssert( depth < sizeof(elements) / sizeof(DOMNode*) );  int d=0;  for (node = elem; d<depth; node = node->getParentNode()) elements[d++] = node;  for (d=depth-1; d>=0; --d) {    if (d < depth-1) fullname += "_";    fullname += XMLString::transcode(elements[d]->getNodeName());  }  return CPLStrdup(fullname.c_str());}void ILI2Reader::setFieldDefn(OGRFeatureDefn *featureDef, 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) {        setFieldDefn(featureDef, childElem);      } else {        char *fName = fieldName(childElem);        if (featureDef->GetFieldIndex(fName) == -1) {          CPLDebug( "OGR_ILI", "AddFieldDefn: %s",fName );          OGRFieldDefn *fieldDef = new OGRFieldDefn(fName, OFTString);          featureDef->AddFieldDefn(fieldDef);        }        CPLFree(fName);      }    }  }}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);        } else {          m_missAttrs.push_back(fName);        }        CPLFree(fName);      }    } else {      feature->SetGeometry(getGeometry(childElem, type));    }  }}//// ILI2Reader//IILI2Reader::~IILI2Reader() {}ILI2Reader::ILI2Reader() {    m_poILI2Handler = NULL;    m_poSAXReader = NULL;    m_bReadStarted = FALSE;    m_pszFilename = NULL;        SetupParser();}ILI2Reader::~ILI2Reader() {    CPLFree( m_pszFilename );    CleanupParser();}void ILI2Reader::SetArcDegrees(double arcDegrees) {  arcIncr = arcDegrees*PI/180;}void ILI2Reader::SetSourceFile( const char *pszFilename ) {    CPLFree( m_pszFilename );    m_pszFilename = CPLStrdup( pszFilename );}int ILI2Reader::SetupParser() {    static int bXercesInitialized = FALSE;    if( !bXercesInitialized )    {        try        {            XMLPlatformUtils::Initialize();        }                catch (const XMLException& toCatch)        {            CPLError( CE_Failure, CPLE_AppDefined,              "Unable to initalize Xerces C++ based ILI2 reader. Error message:\n%s\n",               toCatch.getMessage() );            return FALSE;        }        bXercesInitialized = TRUE;    }    // Cleanup any old parser.    if( m_poSAXReader != NULL )        CleanupParser();    // Create and initialize parser.    m_poSAXReader = XMLReaderFactory::createXMLReader();        m_poILI2Handler = new ILI2Handler( this );    m_poSAXReader->setContentHandler( m_poILI2Handler );    m_poSAXReader->setErrorHandler( m_poILI2Handler );    m_poSAXReader->setLexicalHandler( m_poILI2Handler );    m_poSAXReader->setEntityResolver( m_poILI2Handler );    m_poSAXReader->setDTDHandler( m_poILI2Handler );/* No Validation#if (OGR_ILI2_VALIDATION)    m_poSAXReader->setFeature(        XMLString::transcode("http://xml.org/sax/features/validation"), true);    m_poSAXReader->setFeature(        XMLString::transcode("http://xml.org/sax/features/namespaces"), true);    m_poSAXReader->setFeature( XMLUni::fgSAX2CoreNameSpaces, true );    m_poSAXReader->setFeature( XMLUni::fgXercesSchema, true );//    m_poSAXReader->setDoSchema(true);//    m_poSAXReader->setValidationSchemaFullChecking(true);#else*/    m_poSAXReader->setFeature(        XMLString::transcode("http://xml.org/sax/features/validation"), false);    m_poSAXReader->setFeature(        XMLString::transcode("http://xml.org/sax/features/namespaces"), false);//#endif    m_bReadStarted = FALSE;    return TRUE;}void ILI2Reader::CleanupParser() {    if( m_poSAXReader == NULL )        return;    delete m_poSAXReader;    m_poSAXReader = NULL;    delete m_poILI2Handler;    m_poILI2Handler = NULL;    m_bReadStarted = FALSE;}int ILI2Reader::SaveClasses( const char *pszFile = NULL ) {    // Add logic later to determine reasonable default schema file.     if( pszFile == NULL )        return FALSE;            // parse and create layers and features    m_poSAXReader->parse(pszFile);  if (m_missAttrs.size() != 0) {    m_missAttrs.sort();    m_missAttrs.unique();    string attrs = "";      list<string>::const_iterator it = m_missAttrs.begin();    for (it = m_missAttrs.begin(); it != m_missAttrs.end(); ++it)      attrs += *it + ", ";       CPLError( CE_Warning, CPLE_NotSupported,               "Failed to add new definition to existing layers, attributes not saved: %s", attrs.c_str() );  }    return TRUE;}list<OGRLayer *> ILI2Reader::GetLayers() {  return m_listLayer;}int ILI2Reader::GetLayerCount() {  return m_listLayer.size();}int ILI2Reader::AddFeature(DOMElement *elem) {  bool newLayer = true;  OGRLayer *curLayer = 0;  char *pszName = XMLString::transcode(elem->getTagName());  // test if this layer exist  for (list<OGRLayer *>::reverse_iterator layerIt = m_listLayer.rbegin();       layerIt != m_listLayer.rend();       ++layerIt) {    OGRFeatureDefn *fDef = (*layerIt)->GetLayerDefn();    if (cmpStr(fDef->GetName(), pszName) == 0) {      newLayer = false;      curLayer = *layerIt;      break;    }  }    // add a layer  if (newLayer) { // FIXME in Layer: SRS Writer Type datasource        CPLDebug( "OGR_ILI", "Adding layer: %s", pszName );    // new layer data    OGRSpatialReference *poSRSIn = NULL; // FIXME fix values for initial layer    int bWriterIn = 0;    OGRwkbGeometryType eReqType = wkbUnknown;    OGRILI2DataSource *poDSIn = NULL;    curLayer = new OGRILI2Layer(CPLStrdup(pszName), poSRSIn, bWriterIn, eReqType, poDSIn);    m_listLayer.push_back(curLayer);  }    // the feature and field definition  OGRFeatureDefn *featureDef = curLayer->GetLayerDefn();  if (newLayer) {    // the TID feature    OGRFieldDefn *fieldDef = new OGRFieldDefn(CPLStrdup(ILI2_TID), OFTString);    featureDef->AddFieldDefn(fieldDef);    setFieldDefn(featureDef, elem);  }  // add the features  OGRFeature *feature = new OGRFeature(featureDef);  // the TID feature  int fIndex = feature->GetFieldIndex(ILI2_TID);  char *fChVal = XMLString::transcode(elem->getAttribute(XMLString::transcode(ILI2_TID)));  feature->SetField(fIndex, CPLStrdup(fChVal));    SetFieldValues(feature, elem);  curLayer->SetFeature(feature);  return 0;}IILI2Reader *CreateILI2Reader() {    return new ILI2Reader();}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美福利视频一区| 欧美一区二区精品久久911| 午夜精品视频在线观看| 国产夜色精品一区二区av| 在线免费亚洲电影| 国产二区国产一区在线观看| 丝袜美腿亚洲色图| 国产精品国产馆在线真实露脸 | 97久久精品人人做人人爽| 视频在线在亚洲| 综合欧美亚洲日本| 2023国产一二三区日本精品2022| 色老汉av一区二区三区| 国产成人综合亚洲网站| 精品综合免费视频观看| 亚洲福利一区二区三区| 亚洲欧美日韩久久| 国产精品女同互慰在线看| 精品少妇一区二区三区| 欧美一区二区精品久久911| 欧美熟乱第一页| 日本道色综合久久| 99re热这里只有精品视频| 国产精品一区2区| 激情成人综合网| 蜜桃视频第一区免费观看| 午夜精品影院在线观看| 亚洲精品欧美综合四区| 日韩一区日韩二区| 国产精品视频麻豆| 国产欧美日韩在线| 中文字幕不卡三区| 国产色产综合产在线视频| 2021国产精品久久精品| 亚洲精品一区二区在线观看| 精品国产网站在线观看| 精品裸体舞一区二区三区| 91精品国产综合久久国产大片| 欧美日韩中文字幕一区二区| 日本电影欧美片| 欧美午夜一区二区三区| 欧美精品粉嫩高潮一区二区| 欧美精品v日韩精品v韩国精品v| 欧美日本一区二区三区四区| 欧美日韩视频第一区| 555夜色666亚洲国产免| 欧美精品一二三| 欧美va在线播放| 久久久.com| 欧美国产激情二区三区| 国产精品乱码人人做人人爱| 成人欧美一区二区三区1314| 亚洲黄色小视频| 亚洲综合免费观看高清在线观看| 亚洲国产精品久久艾草纯爱 | 日韩制服丝袜先锋影音| 日韩av一级片| 九九九久久久精品| 精品夜夜嗨av一区二区三区| 国产乱淫av一区二区三区| 成人美女在线观看| 在线免费观看不卡av| 在线综合视频播放| 国产三级久久久| 国产精品欧美久久久久一区二区| 一区二区三区影院| 蜜桃av一区二区三区电影| 成人午夜看片网址| 精品婷婷伊人一区三区三| 欧美一区二区三级| 国产精品视频一二三区| 亚洲资源中文字幕| 久久国产三级精品| 99国产精品99久久久久久| 欧美日韩一本到| 久久久久久久综合色一本| 中文字幕一区二区三中文字幕| 亚洲成人精品一区| 国产剧情一区在线| 欧洲人成人精品| 精品剧情在线观看| 亚洲精品乱码久久久久久久久| 日本成人在线一区| 99精品热视频| 日韩美一区二区三区| 国产精品三级电影| 青青草国产精品97视觉盛宴| 成人毛片视频在线观看| 制服.丝袜.亚洲.中文.综合| 国产精品五月天| 日韩不卡手机在线v区| 99久久99精品久久久久久| 欧美理论电影在线| 亚洲视频免费看| 国产在线不卡一区| 欧美日韩国产综合一区二区三区| 久久久三级国产网站| 五月激情六月综合| 99视频精品在线| 精品国产91乱码一区二区三区 | 国产精品美女视频| 久久国产福利国产秒拍| 欧美在线观看一区| 亚洲欧洲av在线| 国产剧情av麻豆香蕉精品| 欧美高清视频在线高清观看mv色露露十八 | 亚洲五月六月丁香激情| 丁香天五香天堂综合| 91精品国产一区二区| 伊人婷婷欧美激情| 99这里只有精品| 国产欧美日韩三级| 国内外成人在线| 日韩三级高清在线| 视频一区欧美精品| 欧美日韩综合色| 一个色综合av| 99久久精品费精品国产一区二区| 久久人人爽人人爽| 久久国产精品99久久人人澡| 欧美日本视频在线| 亚洲国产综合视频在线观看| 色8久久人人97超碰香蕉987| 亚洲天堂成人在线观看| 成人在线综合网站| 国产亚洲制服色| 国产精品一区在线| 久久天天做天天爱综合色| 麻豆国产精品一区二区三区| 久久综合九色欧美综合狠狠| 久久国产尿小便嘘嘘| 日韩午夜小视频| 麻豆一区二区三| 久久综合九色欧美综合狠狠| 国产真实精品久久二三区| 久久久噜噜噜久噜久久综合| 国产精品99久久不卡二区| 欧美一区二区三区公司| 看片网站欧美日韩| 日韩精品一区二区三区四区| 韩国精品久久久| 国产欧美日韩三区| 不卡av电影在线播放| 成人免费在线播放视频| 色狠狠一区二区三区香蕉| 亚洲成人久久影院| 欧美一区二区日韩一区二区| 韩国女主播一区二区三区| 国产午夜精品理论片a级大结局| 豆国产96在线|亚洲| 中文字幕视频一区| 欧美色窝79yyyycom| 日韩精品一二区| 精品黑人一区二区三区久久| 国产精品99久久久久久久vr | 久久综合狠狠综合| 成人黄色大片在线观看| 一区二区三区小说| 日韩写真欧美这视频| 国产成人精品网址| 亚洲最大成人网4388xx| 日韩欧美一区在线| 国产v日产∨综合v精品视频| 一区二区视频在线看| 日韩一级大片在线观看| 国产成人在线网站| 亚洲日本免费电影| 91精品国模一区二区三区| 国产成人综合精品三级| 亚洲午夜电影在线观看| 26uuu国产电影一区二区| 一本久道中文字幕精品亚洲嫩| 日韩高清不卡在线| 国产精品久久午夜| 91精品婷婷国产综合久久性色| 国产成人在线看| 亚洲国产wwwccc36天堂| 久久久久久久久久久久久夜| 欧美在线不卡视频| 国产乱码一区二区三区| 亚洲超丰满肉感bbw| 中文字幕高清不卡| 在线不卡免费欧美| 成人午夜看片网址| 美女视频黄久久| 亚洲欧美日本韩国| 精品国产免费久久| 欧美三级电影网| www.欧美.com| 黄色资源网久久资源365| 亚洲国产综合视频在线观看| 亚洲午夜久久久久久久久电影院| 精品少妇一区二区三区免费观看 | 91亚洲精品一区二区乱码| 五月激情综合网| 亚洲欧美一区二区三区极速播放| 精品久久久久久久人人人人传媒| 91成人国产精品| 成人avav影音| 激情综合亚洲精品|