Поиск идентичной геометрии

0 голосов
спросил 01 Фев, 07 от Scok (1,260 баллов) в категории Программные продукты Esri
    Всем читающим привет!

Прошу высказать предложения по оптимизации поиска идентичной геометрии любого типа в слое. Например, есть слой, на вход метода подается геометрия, в слое требуется найти идентичную входной (если она там есть, конечно).

Через ISpatialFilter и пространственный запрос, соответственно, у меня не получается - нет нужного   esriSpatialRelEnum. Сейчас задача решается так:

long <имя класса>::mmFindGeometry(IFeatureClass *ipFC,IGeometry *ipGeom,IFeature **ipF)
{
bool EmptyGeom,Cmp;
long FeatCount,i;
ESRI::ArcGIS::Geodatabase::IFeature *ipFeat;
ESRI::ArcGIS::Geodatabase::IFeatureCursor *ipFCur;
ESRI::ArcGIS::Geometry::IGeometry *ipG;
ESRI::ArcGIS::Geometry::IRelationalOperator *ipRelOp;
ISpatialReference     *ipSR;                              // объект для проверки наличия пространственной привязки

// проверка на наличие пространственной привязки и непустого значения геометрии
EmptyGeom = ipGeom->get_IsEmpty();
if(EmptyGeom == true) return 100007;
ipSR = ipGeom->get_SpatialReference();
if(ipSR == 0) return 100009;

FeatCount = ipFC->FeatureCount(0);          // получение кол-ва строк в классе
if(FeatCount < 0) FeatCount = 0;
ipFCur = ipFC->Search(0,false);

for(i=0;i<FeatCount;i++)                    // перебор все геометрий с поиском идентичной
     {
      ipFeat = ipFCur->NextFeature();
      ipG = ipFeat->get_Shape();
      ipRelOp = dynamic_cast<ESRI::ArcGIS::Geometry::IRelationalOperator*>(ipG);
      Cmp = ipRelOp->Equals(ipGeom);
      if(Cmp == true)     // найдена первая идентичная входной геометрия
          {*ipF = ipFeat;return 0;}
     }

return 100010;
}

Знаю, что задача решается с помощью метода put_SpatialRelDescription(...), но так и не разобрался как! image . Решение в несколько запросов с разными esriSpatialRelEnum не принимаются - мне это не нравиться . У кого какие мнения? Кто-нибудь работал с SpatialRelDescription(...)?

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...