SpatialFilter

0 голосов
спросил 06 Май, 10 от PEKAHT (2,780 баллов) в категории Программные продукты Esri
Есть 2 сервиса
1.Выбираю feature в одном сервисе по какому то запросу
2.Потом мне надо выбрать объекты из слоя в другом сервисе, которые пересекаются с первым объектом
вот не выбираются.....Cry
кто нибудь сталкивался???

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

7 Ответы

0 голосов
ответил 06 Май, 10 от pooperec (10,820 баллов)
Сам сегодня с этим мучался.

Проблемы были с проекцией (все геометрии надо приводить к одной проекции), и с использованием Shape, вместо ShapeCopy.

В общем я предлагаю, попробовать инициализировать для временной геометрии класс соответсвующего типа, и только потом шаманить...

З.Ы. Короче у меня так работает:
       pSF:=CoSpatialFilter.Create as ISpatialFilter;
       pSF.Geometry:=pFG;
       pSF.GeometryField := 'SHAPE';
       pSF.SpatialRel:=esriSpatialRelIntersects;
       pFC :=pFl.FeatureClass.Search(IQueryFilter(pSF),true);
       pFeature :=pFC.NextFeature;
0 голосов
ответил 07 Май, 10 от PEKAHT (2,780 баллов)
так вот, именно так и делаю, и не работает
а для ITopologicalOperator - с Shape не работает, а с ShapeCopy работает...
а как привести к одной проекции ?


0 голосов
ответил 07 Май, 10 от pooperec (10,820 баллов)
var
pTempGeometry : IGeometry;
pAV : IHookHelper;

Begin
...
pTempGeometry:=pFeature.ShapeCopy;        pTempGeometry.Project(pAV.FocusMap.SpatialReference);
pTempGeometry.SnapToSpatialReference;
...
End;

Комментарий:
У pFeature СК такая же как и у текущего фрейма, но без "Project" не работает.
0 голосов
ответил 07 Май, 10 от PEKAHT (2,780 баллов)
pTempGeometry.SnapToSpatialReference; - это делать не обязательно
а вот pTempGeometry.Project(pAV.FocusMap.SpatialReference); - это то что надо...
спасибо!!!
0 голосов
ответил 07 Май, 10 от PEKAHT (2,780 баллов)
или тоже не катит?   Unhappy
запутался я уже....
0 голосов
ответил 07 Май, 10 от pooperec (10,820 баллов)
Я после праздников к этому вопросу вернусь, если что выясню - помогу, чем смогу...
0 голосов
ответил 07 Май, 10 от PEKAHT (2,780 баллов)
да все, можно закрывать вопрос... :)
собрался с мыслями, сделал все аккуратно  и все хорошо, работает этот вариант.
еще раз, спасибо огромное!
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...