На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Александр Махин (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Александр Махин
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 56 След.
Выделение объектов по области
 
Да [QUOTE]Andrey Gheleznyakov написал:
После открытия карты, подвинте карту влево и вверх и выполните поиск в точке. Он корректно выделяет первый объект в точке нажатия?[/QUOTE]
Да корректно выделяет первый и последующие объекты в точке нажатия.
Выделение объектов по области
 
А и еще если Вы отключите MapFind.FindPoint = false, то выделение по области будет работать корректно.
Выделение объектов по области
 
[QUOTE]Andrey Gheleznyakov написал:
Скорее всего все проблемы из за задания координат поиска.[/QUOTE]
Это ни как не помогло!!)
Выделение объектов по области
 
Проблем в поиске объектов в точке нажатия и выделения объектов по области нет, все работает хорошо.

Проблема в том, что как только откроется карта и нажать на кнопку "Выделить объекты по области", выделение объектов происходит с выделением их по контуру, НО как только сработал поиск объекта в точке нажатия , ТО выделение тех же объектов по области отображается не полностью.

Как это победить????
Выделение объектов по области
 
Отправил!
Выделение объектов по области
 
Добрый день.

Подскажите пожалуйста я подготовил небольшой проект с поиском и выделением объектов по области на карте + тестовая карта.
Могу ли я данный проект скинуть Вам для проверки, что именно я делаю не правильно?
Выделение объектов по области
 
[QUOTE]Денис Вицко написал:
А сам проект Findobj (до переноса функционала) у Вас корректно выделяет объекты?[/QUOTE]
Да работает корректно!
Выделение объектов по области
 
[QUOTE]Денис Вицко написал:
Там, где у вас включается режим выделения по области (видимо, где SelectArea = true), - там же можно и выключить MapFind.FindPoint.Перед началом выделения в точке (когда SelectArea = false), MapFind.FindPoint надо включить.[/QUOTE]
Куда я только не добавляю MapFind.FindPoint = false это не помогает)))
Мне кажется, что MapFind.FindPoint не очищается после его использования :oops:
Выделение объектов по области
 
Я нашел причину.
Если значению MapFind.FindPoint присвоить false, то выделение объектов по области работает отлично, но перестает работать поиск в точке нажатия))))
Пробовал отключать и включать значение MapFind.FindPoint, но результата это не принесло. Как быть??
Выделение объектов по области
 
Добрый день, господа разработчики.
Я выполнил максимальное упрощение своего функционала в части поиска и выделения объектов на карте. Кроме того, подробно изучил пример  \Findobj.
Также я перенес свой функционал в проект \Findobj для проверки и он также срабатывает.

[B]Вой мой код:[/B]
private void MapScreen_OnMapMouseDown(object sender, IaxMapScreenEvents_OnMapMouseDownEvent e)
       {
           switch (e.button)
           {
               case 0:[B]//Нажата левая кнопка мыши[/B]
                   //Если включен режим выделения по области, то выйти
                   if (SelectArea) return;

                  [B] //Если выключен режим выделения по области, то выполнить поиск в точке нажатия[/B]
                   MapFind2.Active = false;
                   ObjCopyFind.Clear();
                   MapFind2.cMapSelect.UnselectSeekArea(-1); // сбросим область если была
                   MapFind2.cMapView.SetObjSelected(null, new TxColorRef(), true);
                   MapFind2.cMapSelect.ClearAll(); // Сброс всех условий для текущей карты
                   
                   [B]//Начать поиск объекта в точке нажатия[/B]
                   MapFind.cMapSelect.MapSites[0] = false;
                   MapFind.cMapSelect.MapSites[2] = false;
                   MapFind.cMapSelect.MapSites[3] = false;
                   MapFind.Active = false;
                   MapFind.FindPoint = true;
                   MapFind.X = e.x;
                   MapFind.Y = e.y;
                   MapFind.Radius = 3;
                   MapFind.cMapObj.StyleSelect = TxObjectStyleSelect.SEL_OBJUP;
                   MapFind.cMapObj.St yle = TxObjectStyle.OS_SELECT;
                   MapFind.Active = true;
                   break;  
           }
       }


private void MapScreen_OnMapMouseUp(object sender, IaxMapScreenEvents_OnMapMouseUpEvent e)
       {
           switch (e.button)
           {
               case 0:
                   if (SelectArea)
                   {
                       MapFind.Active = false;
                       MapFind2.cMapSelect.MapSites[0] = false;
                       MapFind2.cMapSelect.MapSites[2] = false;
                       MapFind2.cMapSelect.MapSites[3] = false;
                       MapObj2.CreateNullObj(1);
                       MapPoint2.PlaceInp = TxPPLACE.PP_PLANE;
                       MapPoint2.SetPoint(MapSelectRect.SelectedRect.X1, MapSelectRect.SelectedRect.Y1);
                       MapObj2.Metric.Append(0, MapPoint2.C_CONTAINER);
                       MapPoint2.SetPoint(MapSelectRect.SelectedRect.X1, MapSelectRect.SelectedRect.Y2);
                       MapObj2.Metric.Append(0, MapPoint2.C_CONTAINER);
                       MapPoint2.SetPoint(MapSelectRect.SelectedRect.X2, MapSelectRect.SelectedRect.Y2);
                       MapObj2.Metric.Append(0, MapPoint2.C_CONTAINER);
                       MapPoint2.SetPoint(MapSelectRect.SelectedRect.X2, MapSelectRect.SelectedRect.Y1);
                       MapObj2.Metric.Append(0, MapPoint2.C_CONTAINER);
                       MapPoint2.SetPoint(MapSelectRect.SelectedRect.X1, MapSelectRect.SelectedRect.Y1);
                       MapObj2.Metric.Append(0, MapPoint2.C_CONTAINER);
                       MapFind2.Active = false;
                       MapFind2.FindPoint = false;
                       MapFind2.cMapSelect.SelectSeekArea(1, MapFind2.cMapObj.C_CONTAINER, 0, 1, 2, 1, 1);
                       MapFind2.Active = true;
                       var aColor = new TxColorRef { Blue = 255 };
                       MapFind2.cMapView.SetObjSelected(MapFind2.cMapSelect, aColor, true);
                       MapSelectRect.StopAction();
                       SelectArea = false;
                   }
                   break;  
           }
       }

На Скрине 1 я выполнил выделение объектов по области и они хорошо выделяются по контуру, но после того как я выполнил поиск в точке нажатия, то объекты начали выделяться не полностью, а некоторые и вовсе не выделяются (Скрин 2).
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 56 След.



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности