 |
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));
}
}
}
}
|
|
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
|
|