Здравствуйте, возник такой вопрос, как осуществить поиск и выделение объектов-мультиполигонов среди всех объектов нескольких открытых карт, делаю это следующим образом, но при этом почему-то выделяются все объекты всех карт?
Код |
---|
HSITE hSite = stFindSelectParm.hSite;
HSELECT hSelect1;
HSELECT hSelect2;
if (hSite == 0)
{
hSelect1 = mapCreateMapSelectContext(HMap);
mapGetSiteViewSelect(HMap, hSite, hSelect1);
}else hSelect1 = stFindSelectParm.hSelect;
if (mapCheckLocal(hSelect1, LOCAL_SQUARE) == 0)
{
mapDeleteSelectContext(hSelect1);
return 0;
}
if (hSite == 0)
hSelect2 = mapCreateMapSelectContext(HMap);
else
hSelect2 = mapCreateSiteSelectContext(HMap, hSite);
mapClearSample(hSelect2);
// Создать пустой объект для обработки выделенных
HOBJ hObj = mapCreateObject(HMap);
if (!hObj) return 0;
int flag = WO_FIRST;
int numb;
numb = mapGetSiteNumber(HMap, stFindSelectParm.hSite);
int nSelect = 0;
mapSetTotalSeekViewRule(HMap, 1);
if (hSite == 0)
{
while (mapTotalSeekObject(HMap, hObj, flag) != 0)
{
flag = WO_NEXT;
if (mapIsMultiPolygon(hObj) != 0)
{
if (mapObjectLocal(hObj) == LOCAL_SQUARE)
{
mapSelectSampleByNumber(hSelect2, 1, mapObjectNumber(hObj));
}
}
}
}
if (hSite!=0)
mapSetTotalSeekMapRule(HMap, numb);
else mapSetTotalSeekMapRule(HMap, -1);
mapSetTotalSelectFlag(HMap, 1);
mapSetSiteSeekSelect(HMap, hSite, hSelect2);
|