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

Создание многоконтурного объекта

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



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

СообщениеДобавлено: Пн 19 Ноя 2012 15:39    Заголовок сообщения: Создание многоконтурного объекта Ответить с цитатой

Хочу создать многоконтурный объект с помощью программного модуля. Возможно ли это сделать? Если да, то каким образом. (подскажите команду для создания новых контуров)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
APopov



Зарегистрирован: 19.06.2006
Сообщения: 347
Откуда: Самара

СообщениеДобавлено: Вт 20 Ноя 2012 11:07    Заголовок сообщения: Ответить с цитатой

"C:\Program Files\Integro\InGeo\IngeoIntfs.chm"
Shape.Contour.Insert(-1)

_________________
ОАО "Самара-Информспутник",
инженер-программист Попов Артем
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ayrat



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

СообщениеДобавлено: Вт 20 Ноя 2012 11:55    Заголовок сообщения: Ответить с цитатой

вставляется "часть" контура, а не рисуется новый. Повторюсь: мне нужно создать новый контур а не добавлять данные в старый


2.jpg
 Описание:
 Размер файла:  65.47 KB
 Просмотрено:  11453 раз(а)

2.jpg


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



Зарегистрирован: 19.06.2006
Сообщения: 347
Откуда: Самара

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

Цитата:
Повторюсь: мне нужно создать новый контур а не добавлять данные в старый

Цитата:
Хочу создать многоконтурный объект с помощью программного модуля.

многоконтурные объекты в ингео возможны 2х видов:
1) в одном Шейпе несколько частей контура - это то что я сразу вам сказал
2) у объекта несколько Шейпов. Внезапно, делается так:
set newShape = MapObject.Shapes.Insert(-1, aStyleID)
далее у контура шейпа таки нужно будет создать одну часть и заполнить ее координатами

----
в обоих случаях можно считать, что объекты многонтурные, поэтому формулируйте ваши вопросы точнее

_________________
ОАО "Самара-Информспутник",
инженер-программист Попов Артем
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ayrat



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

СообщениеДобавлено: Ср 21 Ноя 2012 09:16    Заголовок сообщения: Ответить с цитатой

хорошо, тогда как мне создать новый контур у конкретного шейпа, то есть я хочу создать в конкретном шейпе "i" новые контура "j"


(iObj.Shapes.Item(i).Contour.Item(j)...)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
APopov



Зарегистрирован: 19.06.2006
Сообщения: 347
Откуда: Самара

СообщениеДобавлено: Ср 21 Ноя 2012 18:50    Заголовок сообщения: Ответить с цитатой

это я вам сказал уже:
Цитата:
Shape.Contour.Insert(-1)

или запишем по другому
set newContPart = iObj.Shapes.Item(i).Contour.Insert(-1)

_________________
ОАО "Самара-Информспутник",
инженер-программист Попов Артем
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Чт 22 Ноя 2012 08:38    Заголовок сообщения: Ответить с цитатой

Немного теории:

В ИнГео основной "рабочей" информационной единицей является пространственный объект.

Структурно пространственный объект состоит из набора геометрических форм (Shapes), которые определяют геометрический образ объекта и семантических данных (SemData), которые определяют атрибутивную (информационную) составляющую пространственного объекта.

Рассмотрим подробнее геометрическую составляющую объекта.

Каждая геометрическая форма состоит из контура (Contour) и ссылки на стиль (Style), который будет использоваться для отображения этого контура.




Контур состоит из набора частей контура (ContourPart).

Часть контура состоит из набора вершин (Vertex), сопровождаемого признаком замкнутости.

Каждая вершина описывается координатами (X, Y) и кривизной дуги (Convexity) отрезка , соединяющего предыдущую вершину с текущей.

На основании набора вершин и признака замкнутости можно выделить три вида частей контура:
1. Часть состоит из одной вершины. Признак замкнутости не важен. Это - точка.
2. Часть состоит из двух и более вершин. Не замкнут. Это - полилиния.
3. Часть состоит из двух и более вершин. Замкнут. Это - полигон.

Несмотря на то, что потенциально контур может состоять из разнородных частей, на практике используются следующие комбинации частей:

1. Точечный контур. Содержит одну часть с одной вершиной. Используется для точечных объектов.
2. Линейный контур. Содержит одну не замкнутую часть с двумя и более вершинами. Используется для линейных объектов.
3. Площадной контур. Содержит одну или несколько замкнутых частей, каждая из которых состоит из двух и более вершин. Используется для площадных объектов. Если такой контур состоит из нескольких частей, то имеет место сложный площадной объект с дырками (бублик). Границы частей такого контура не должны пересекаться. ИнГео сама определяет, какая часть образует площадь, а какая - дырку.

Такая простая контурная конструкция позволяет единообразно задавать практически все виды контуров (точки, полилинии, полигоны, регионы, прямоугольники, окружности и пр.).

Это было о контурах.

Но, как я написал выше, каждый объект состоит из набора геометрических форм. Зачем?

Обычно объект содержит одну главную форму, контур которой определяет "полезную" геометрию объекта. И несколько оформительских форм, контуры которых не несут полезной информации, но нужны для декоративных целей, обычно для отображения подписей. Вся эта конструкция из геометрических форм и определяет единый пространственный объект.

P.S. Геометрическая форма - это не просто контур, а еще и ссылка на стиль, которым этот контур будет отображаться на карте.

Надеюсь, эта информация поможет вам в том, как и куда добавлять формы, части контура и вершины.

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

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


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