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

Вопрос об IngeoMapObject

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



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

СообщениеДобавлено: Пт 15 Янв 2016 18:35    Заголовок сообщения: Вопрос об IngeoMapObject Ответить с цитатой

Добрый день. Вопрос в следующем.
Пишу программу, добавляющую в ИнГЕО участки и семантику. Если при добавлении участка обнаруживаю, что такой уже имеется на карте, то новый не переношу, а семантику кладу в уже имеющийся участок.
Программу построил так, что сначала создаю объект, задаю координаты его контура(ов), после чего проверяю, есть ли такой контур на карте. Если есть то делаю переприсваивание объекта:
Код:
obj = objs.GetObject("здесь ID существующего объекта");

При таком подходе при выполнении objs.UpdateChanges() семантика у существующего объекта заменяется, однако на карту добавляется клон участка без семантики.
Стал делать так:
Код:
obj.DropChanges();
obj = objs.GetObject("здесь ID существующего объекта");


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



Зарегистрирован: 17.02.2005
Сообщения: 100
Откуда: г. Учалы, Респ. Башкортостан

СообщениеДобавлено: Сб 16 Янв 2016 01:42    Заголовок сообщения: Ответить с цитатой

надо бы увидеть больше кода
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Николаускас



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

СообщениеДобавлено: Пн 18 Янв 2016 12:42    Заголовок сообщения: Ответить с цитатой

Кода довольно много, попробую привести его в общих чертах.

Код:
Ingeo.IIngeoMapObjects objs = app.ActiveDb.MapObjects;
Ingeo.IIngeoMapObject obj = objs.AddObject("ID слоя");
Ingeo.IIngeoShapes shapes = obj.Shapes;
Ingeo.IIngeoShape shape = shapes.Insert(0, "ID стиля");
Ingeo.IIngeoContour contour = shape.Contour;


Далее код со вставкой контуров с помощью InsertVertex.
Потом с помощью app.ActiveDb.MapObjects.QueryByContour(...) проверяю существование такого участка на карте.
Далее:
Код:

if (isMapContainsParcel)   //участок уже есть
{
        //obj.DropChanges();
        obj = objs.GetObject("ID существующего участка");
}
else
{
    objs.UpdateChanges();
}


Далее блок кода с переносом семантики посредством obj.SemData.SetValue(...)
И в финале objs.UpdateChanges();

Если раскомментить строку с obj.DropChanges(), то при objs.UpdateChanges() выскакивает исключение с сообщением о том, что объект не имеет контуров.

То есть созданный объект никуда не исчезает при переприсваивании. Вопрос сводится к тому, как мне его грамотно обнулить, очистить и т.п.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Азаматов Азамат Хадисович



Зарегистрирован: 17.02.2005
Сообщения: 100
Откуда: г. Учалы, Респ. Башкортостан

СообщениеДобавлено: Пн 18 Янв 2016 14:01    Заголовок сообщения: Ответить с цитатой

видимо отдельно собрать список "несоздавшихся" и потом удалить.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Николаускас



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

СообщениеДобавлено: Пн 18 Янв 2016 16:06    Заголовок сообщения: Ответить с цитатой

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

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


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