bool GetCountRequest::Create(XDocument* pxDoc) { XElement *pxRoot = NULL; XAttribute *pxAttr = NULL; m_pxDoc = pxDoc; pxRoot = pxDoc->GetRootNode(); pxAttr = pxRoot->GetAttribute("version"); if(pxAttr!=NULL) { SetVersion(pxAttr->GetValue()); } pxAttr = pxRoot->GetAttribute("mapName"); if(pxAttr!=NULL) { SetMapName(pxAttr->GetValue(),false); } pxAttr = pxRoot->GetAttribute("sourceName"); if(pxAttr!=NULL) { SetSourceName(pxAttr->GetValue()); } XElement* pxQuery = (XElement*)pxRoot->GetFirstChild("Query"); if(pxQuery==NULL) { return NULL; } pxAttr = pxQuery->GetAttribute("typeName"); if(pxAttr==NULL) { return false; } SetTypeName(pxAttr->GetValue(),false); if(m_type_name.empty()) { return false; } return true; }
bool GetFeatureRequest::Create(XDocument* pxDoc) { XElement *pxRoot = NULL; XAttribute *pxAttr = NULL; m_pxDoc = pxDoc; pxRoot = pxDoc->GetRootNode(); pxAttr = pxRoot->GetAttribute("version"); if(pxAttr!=NULL) { SetVersion(pxAttr->GetValue()); } pxAttr = pxRoot->GetAttribute("mapName"); if(pxAttr!=NULL) { SetMapName(pxAttr->GetValue(),false); } pxAttr = pxRoot->GetAttribute("sourceName"); if(pxAttr!=NULL) { SetSourceName(pxAttr->GetValue()); } pxAttr = pxRoot->GetAttribute("outputFormat"); if(pxAttr!=NULL) { GLogger* pLogger = augeGetLoggerInstance(); pLogger->Trace(pxAttr->GetValue(),__FILE__,__LINE__); SetOutputFormat(pxAttr->GetValue()); } pxAttr = pxRoot->GetAttribute("maxFeatures"); if(pxAttr!=NULL) { SetMaxFeatures(pxAttr->GetValue()); } pxAttr = pxRoot->GetAttribute("offset"); if(pxAttr!=NULL) { SetOffset(pxAttr->GetValue()); } pxAttr = pxRoot->GetAttribute("encoding"); if(pxAttr!=NULL) { SetEncoding(pxAttr->GetValue()); } XElement* pxQuery = (XElement*)pxRoot->GetFirstChild("Query"); if(pxQuery==NULL) { return NULL; } pxAttr = pxQuery->GetAttribute("typeName"); if(pxAttr==NULL) { return false; } SetTypeName(pxAttr->GetValue(), false); if(m_type_name.empty()) { return false; } //Layer* pLayer = NULL; //pLayer = pMap->GetLayer(m_type_name.c_str()); //if(pLayer==NULL) //{ // return false; //} //if(pLayer->GetType()!=augeLayerFeature) //{ // return false; //} //FeatureLayer* pFLayer = NULL; //FeatureClass* pFeatureClass = NULL; //pFLayer = static_cast<FeatureLayer*>(pLayer); //pFeatureClass = pFLayer->GetFeatureClass(); //if(pFeatureClass==NULL) //{ // return false; //} //FilterFactory* pFilterFactory = augeGetFilterFactoryInstance(); //m_pQuery = pFilterFactory->CreateQuery(); //XElement* pxFilter = (XElement*)pxQuery->GetFirstChild("Filter"); //if(pxFilter!=NULL) //{ // GFilter* pFilter = NULL; // FilterReader* reader = pFilterFactory->CreateFilerReader(pFeatureClass->GetFields()); // pFilter = reader->Read(pxFilter); // m_pQuery->SetFilter(pFilter); //} ////PropertyName //char field_name[AUGE_NAME_MAX]; //const char* property_name; //XNode* pxNode = NULL; //XNodeSet* pxNodeSet = pxQuery->GetChildren("PropertyName"); //pxNodeSet->Reset(); //while((pxNode=pxNodeSet->Next())!=NULL) //{ // property_name = pxNode->GetContent(); // ParseFieldName(property_name, field_name, AUGE_NAME_MAX); // m_pQuery->AddSubField(field_name); //} //pxNodeSet->Release(); return true; }