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

Перемещение группы объектов (emMoveGroup)

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: Пред. 1 2 3 4 5 След.
RSS
Перемещение группы объектов (emMoveGroup)
 
Цитата
Александр Махин написал:
Как правильно это сделать?
public C_Card()
       {
           InitializeComponent();
         
           MapEditMetric.MapFindGroup = MapFind.C_CONTAINER;

       }

Так правильно???
 
Цитата
Александр Махин написал:
Цитата
Александр Махин написал:
Как правильно это сделать?
public C_Card()
       {
           InitializeComponent();
         
            MapEditMetric.MapFindGroup = MapFind.C_CONTAINER;

       }

Так правильно???
Или так : MapEditMetric.MapFindGroup = MapFindGroup.C_CONTAINER;
 
Цитата
Александр Махин написал:
Или так : MapEditMetric.MapFindGroup = MapFindGroup.C_CONTAINER;

Зависит от того, какой MapFind у Вас содержит группу, которую требуется переместить.
Если это MapFindGroup, то да - так правильно.

Не забудьте его также настроить на MapView.
 
Я переписал код в соответствии с Вашими предложениями

if ((ModifierKeys & Keys.Control) == Keys.Control)
           {
               TxColorRef aColor = new TxColorRef();
               aColor.Blue = 128;

               MapFindGroup.cMapSelect.MapSites[1] = false;
               MapFindGroup.cMapSelect.MapSites[2] = false;
               MapFindGroup.cMapSelect.MapSites[3] = false;
               MapFindGroup.cMapSelect.MapSites[4] = false;
               MapFindGroup.cMapSelect.Layers[47] = false;

               MapFind.Active = false;
               MapFind.FindPoint = true;
               MapFind.X = e.x;
               MapFind.Y = e.y;
               MapFind.Radius = 5;
               MapFind.Active = true;

               if (MapFindGroup.cMapSelect.SelectSample(true, MapView.MapName, MapFind.cMapObj.Key) > 0) countObj++;
               MapEditMetric.MapFindGroup = MapFindGroup.C_CONTAINER;
               MapView.SetObjSelected(MapFindGroup.cMapSelect, aColor, true);
           }


Но при при попытке перемещения выделенных объектов ни чего не движется(( Что я еще упускаю или не правильно делаю??


Код перемещения выделенных объектов при зажатой клавише ALT

private void MapView_OnMapMouseDown(object sender, AxaxGisToolKit.IaxMapViewEvents_OnMapMouseDownEvent e)
       {
           if ((ModifierKeys & Keys.Alt) == Keys.Alt) // Перемещение объекта посредствам нажатой кнопки Alt
                   {
                       if (countObj > 0)
                       {
                           MapEditMetric.MetEditMode = TxEditMode.emMoveGroup;
                           MapEditMetric.StartAction();
                       }
                    }
         }
 
А на карте выделяются нужные объекты?

MapFindGroup.cMapSelect.SelectSample(true, MapView.MapName, MapFind.cMapObj.Key)
я бы заменил на
MapFindGroup.cMapSelect.SelectSample(true, MapFind.cMapObj.ListName, MapFind.cMapObj.Key)

Доступность карты для SelectSample включается дополнительно - см.aiMapSelect.SelectSample
 
Да объекты выделяются все хорошо.
Но перемещение не срабатывает.

Я все поправил как Вы порекомендовали.  
 
Давайте определимся с работоспособностью компонента редактирования. Просьба попробовать пример из инсталляции на карте Ногинска. Там групповое перемещение работает (перемещение идет по при нажатой левой кнопки мыши)?
 
применил код из примера все работает хорошо.
Скорее всего я неправильно инициализирую компоненты.

Проверьте пожалуйста мою инициализацию:

           MapObj.cMapView = MapView.C_CONTAINER;
           MapObj.St yle = TxObjectStyle.OS_SELECT;

           MapFind.cMapView = MapView.C_CONTAINER;
           MapFind.cMapObj = MapObj.C_CONTAINER;
           MapFind.PlaceInp = TxPPLACE.PP_PICTURE;

           MapFind2.cMapView = MapView.C_CONTAINER;
           MapFind2.cMapObj = MapObj3.C_CONTAINER;
           MapFind2.PlaceInp = TxPPLACE.PP_PICTURE;

           MapEditMetric.cMapView = MapView.C_CONTAINER;
           MapEditMetric.cMapObj = MapObj.C_CONTAINER;
           MapEditMetric.cMapPoint = MapPoint.C_CONTAINER;
 
Внешне выглядит все правильно.
 
Я добавил на форму еще пару объектов (MapObj3 и MapEditMetric2) и применил их для редактирования.

Вот как я их инициализировал

           MapObj.cMapView = MapView.C_CONTAINER;
           MapObj.St yle = TxObjectStyle.OS_SELECT;

          MapObj3.cMapView = MapView.C_CONTAINER;
           MapObj3.St yle = TxObjectStyle.OS_SELECT;

           MapFind.cMapView = MapView.C_CONTAINER;
           MapFind.cMapObj = MapObj.C_CONTAINER;
           MapFind.PlaceInp = TxPPLACE.PP_PICTURE;

           MapFind2.cMapView = MapView.C_CONTAINER;
           MapFind2.cMapObj = MapObj3.C_CONTAINER;
           MapFind2.PlaceInp = TxPPLACE.PP_PICTURE;

           MapEditMetric.cMapView = MapView.C_CONTAINER;
           MapEditMetric.cMapObj = MapObj.C_CONTAINER;
           MapEditMetric.cMapPoint = MapPoint.C_CONTAINER;

           MapEditMetric2.cMapView = MapView.C_CONTAINER;
           MapEditMetric2.cMapObj = MapObj.C_CONTAINER;
           MapEditMetric2.cMapPoint = MapPoint.C_CONTAINER;

И все работает хорошо (группа объектов перемещается). Но это КОСТЫЛЬ, как это сделать правильно???
Страницы: Пред. 1 2 3 4 5 След.
Читают тему (гостей: 1)



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

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