Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

C#, Ингео - методы, события

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
Cosmic



Зарегистрирован: 24.10.2014
Сообщения: 3

СообщениеДобавлено: Пт 24 Окт 2014 02:03    Заголовок сообщения: C#, Ингео - методы, события Ответить с цитатой

Подскажите, где можно почитать про события и методы IIngeoApplication и других классов.
Ну а конкретнее интересует вот что - событие при клике на объект (дом, дорогу, реку и т.п.) и метод, который при выделение 2 объектов, определяет в каких отношениях они относятся - первый соприкасается со вторым; первый находится во втором и т.д.
Есть такие возможности? Спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Foton



Зарегистрирован: 09.10.2006
Сообщения: 158
Откуда: Ярославль

СообщениеДобавлено: Ср 12 Ноя 2014 11:28    Заголовок сообщения: Ответить с цитатой

вот
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Foton



Зарегистрирован: 09.10.2006
Сообщения: 158
Откуда: Ярославль

СообщениеДобавлено: Ср 12 Ноя 2014 11:33    Заголовок сообщения: Ответить с цитатой

для вычисления пространственных отношений используется метод QueryByContour (Объект IIngeoMapObjects)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Cosmic



Зарегистрирован: 24.10.2014
Сообщения: 3

СообщениеДобавлено: Пт 21 Ноя 2014 04:22    Заголовок сообщения: Ответить с цитатой

а вот такой вопрос.
Я взял объект с помощью MapObjects.GetObject().
И как мне его грани выделить цветом, зеленым например.
Ну то есть не могу разобраться с рисовалкой
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
СергейТ



Зарегистрирован: 17.06.2005
Сообщения: 44
Откуда: Новосибирск

СообщениеДобавлено: Вс 30 Ноя 2014 17:24    Заголовок сообщения: Ответить с цитатой

Cosmic писал(а):
а вот такой вопрос.
Я взял объект с помощью MapObjects.GetObject().
И как мне его грани выделить цветом, зеленым например.
Ну то есть не могу разобраться с рисовалкой


Код:

        /// <summary>
        /// Вывод условного обозначения выделенного трубопровода
        /// </summary>
        /// <param name="aSurface">Поверхность рисования окна карты ИнГео</param>
        /// <param name="aMapObject">Выделенный объект карты</param>
        /// <param name="styleIdStart">Идентификатор стиля первого узла</param>
        /// <param name="styleIdEnd">Идентификатор стиля последнего узла</param>
        /// <param name="styleIdLine">Идентификатор стиля линии</param>
        private void PaintContour(IIngeoPaintSurface aSurface, IIngeoMapObject aMapObject, string styleIdStart, string styleIdEnd, string styleIdLine)
        {
            var aContourPoint = (IIngeoContour)_fApplication.CreateObject(TIngeoObjectClass.inocContour, 0);
            var aContourLine = (IIngeoContour)_fApplication.CreateObject(TIngeoObjectClass.inocContour, 0);
            IIngeoContourPart aPart = aContourPoint.Insert(0);
            //IIngeoContourPart aPart2 = aContour.Insert(0);

            for (int iShape = 0; iShape < aMapObject.Shapes.Count; iShape++)
            {
                // Получаем контур
                IIngeoContour contour = aMapObject.Shapes[iShape].Contour;
                IIngeoContourPart part = null;
                double aX, aY, aC;
             
                for (int iContour = 0; iContour < contour.Count; iContour++)
                {
                    // Получаем часть контура
                    part = contour[iContour];

                    if (GidraIngeoModules.Settings.Config.MarkTheBeginningAndEndOfTheSelectedObject) //Если включены соответсвующие настройки
                    {
                        // Получаем первую координату
                        part.GetVertex(0, out aX, out aY, out aC);
                        // Изменяем первую координату
                        aPart.InsertVertex(0, aX, aY, aC);
                        try
                        {
                            IIngeoStyle ingeoStyleStart = _fApplication.ActiveDb.StyleFromID(styleIdStart);
                            //ID стиля для выделения первой точки
                            ingeoStyleStart.PaintContour(aSurface, aContourPoint, "");
                        }
                        catch (Exception)
                        {
                            LogInfo(string.Format("Стиль \"{0}\" для выделения первой точки не найден.", styleIdStart));
                        }

                        aPart.Clear();

                        // Получаем последнюю координату
                        part.GetVertex(part.VertexCount - 1, out aX, out aY, out aC);
                        // Изменяем последнюю координату
                        aPart.InsertVertex(-1, aX, aY, aC);
                        try
                        {
                            IIngeoStyle ingeoStyleEnd = _fApplication.ActiveDb.StyleFromID(styleIdEnd);
                            //ID стиля для выделения второй точки
                            ingeoStyleEnd.PaintContour(aSurface, aContourPoint, "");
                        }
                        catch (Exception)
                        {
                            LogInfo(string.Format("Стиль \"{0}\" для выделения последней точки не найден.", styleIdStart));
                        }

                        aPart.Clear();                     
                    }
                }

                if (GidraIngeoModules.Settings.Config.ApplyStyleToSelectedObject) //Если включены соответсвующие настройки
                {
                    aContourLine.AddPartsFrom(aMapObject.Shapes[iShape].Contour);

                    try
                    {
                        IIngeoStyle ingeoStyle = _fApplication.ActiveDb.StyleFromID(styleIdLine);
                        //ID стиля для выделения линии
                        ingeoStyle.PaintContour(aSurface, aContourLine, "");
                    }
                    catch (Exception)
                    {
                        LogInfo(string.Format("Стиль \"{0}\" для выделения контура не найден.", styleIdStart));
                    }
                }

            }
        }
Вернуться к началу
Посмотреть профиль Отправить личное сообщение MSN Messenger
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB