ВЫДЕЛЕНИЕ ОБЪЕКТОВ ПО ОБЛАСТИ;
//обнулить всю имеющуюся информацию по выделению объектов по области
int countObj = 0;
ObjCopyFind.Clear();
MapFindArea1.cMapView.SetObjSelected(null, new TxColorRef(), true);
MapFindArea2.cMapView.SetObjSelected(null, new TxColorRef(), true);
MapFindArea1.cMapSelect.UnselectSeekArea(-1); // сбросим область если была
var aColor = new TxColorRef {Blue = 255};
// отключить поиск и выделение на всех картах кроме шаблона
MapFindArea1.cMapSelect.MapSites[0] = false;
MapFindArea1.cMapSelect.MapSites[2] = false;
MapFindArea1.cMapSelect.MapSites[3] = false;
// создать объект ограничивающий область
MapObjArea.CreateNullObj(0);
MapPoint.PlaceInp = TxPPLACE.PP_PLANE;
// установить метрику объекта (замкнутый объект, последняя точка должна совпадать с первой)
MapPoint.SetPoint(MapSelectRect.SelectedRect.X1, MapSelectRect.SelectedRect.Y1);
MapObjArea.Metric.Append(0, MapPoint.C_CONTAINER);
MapPoint.SetPoint(MapSelectRect.SelectedRect.X1, MapSelectRect.SelectedRect.Y2);
MapObjArea.Metric.Append(0, MapPoint.C_CONTAINER);
MapPoint.SetPoint(MapSelectRect.SelectedRect.X2, MapSelectRect.SelectedRect.Y2);
MapObjArea.Metric.Append(0, MapPoint.C_CONTAINER);
MapPoint.SetPoint(MapSelectRect.SelectedRect.X2, MapSelectRect.SelectedRect.Y1);
MapObjArea.Metric.Append(0, MapPoint.C_CONTAINER);
MapPoint.SetPoint(MapSelectRect.SelectedRect.X1, MapSelectRect.SelectedRect.Y1);
MapObjArea.Metric.Append(0, MapPoint.C_CONTAINER);
MapFindArea1.Active = false;
MapFindArea1.FindPoint = false;
// установить параметры выделения объектов по области
MapFindArea1.cMapSelect.SelectSeekArea(1, MapFindArea1.cMapObj.C_CONTAINER, 0, 1, 2, 1, 1);
MapFindArea1.Active = true;
//---------------------------------------Выделяем объекты на карте-----------------------------------//
MapScreen.LoadingShow("Выполняется обработка данных...", 13);
MapScreen.SetObjSelected(MapFindArea1.cMapSelect, aColor, true);
MapFindArea1.first();
while (!MapFindArea1.Eof)
{
//создаем копию выделенных объектов
int hobj = MapAPI.mapCreateCopyObject((IntPtr)MapFindArea1.cMapView.MapHandle, (IntPtr)MapObjArea.ObjHandle);
ObjCopyFind.Add(hobj);
if (MapFindArea2.cMapSelect.SelectSample(true, MapFindArea1.cMapObj.ListName, MapFindArea1.cMapObj.Key) > 0) countObj++;
MapEditMetricArea.MapFindGroup = MapFindArea2.C_CONTAINER;
MapFindArea1.Next();
}
if (ObjCopyFind.Count <= 0) MapSelectRect.StopAction();
MapScreen.LoadingClose();