Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Чт 12 Ноя 2015 13:36 Заголовок сообщения: Вопросы о IIngeoMapObjects.UpdateChanges() и IIngeoContourPart.InsertVertex(...) |
|
|
Добрый день. У меня простой вопрос к знающим людям. Упомянутые в названии темы методы не возвращают значений, поэтому скажите, как я могу определить, что точка не вставилась или изменения не применились? Просто выскочит исключение или что? Какие есть способы определить, что точка не вставилась или изменения не применились? |
|
Вернуться к началу |
|
 |
Азаматов Азамат Хадисович
Зарегистрирован: 17.02.2005 Сообщения: 100 Откуда: г. Учалы, Респ. Башкортостан
|
Добавлено: Чт 12 Ноя 2015 14:08 Заголовок сообщения: |
|
|
после insertvertex можно просто проверить последнюю точку или количество точек.
по update сложнее.
по графике исключений никогда не наблюдал, зато "непоявление"
объектов при массовом создании - запросто.
тут если только собирать id созданных/измененных объектов и
проверять внесенные изменения. |
|
Вернуться к началу |
|
 |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Чт 12 Ноя 2015 15:38 Заголовок сообщения: |
|
|
Вот и я столкнулся с непоявлением объектов при выгрузке контуров и семантической информации большого количества участков в ИнГЕО. Интересно, что контуры некоторых участков отсутствуют, но семантическая информация о них при этом перенесена.
Как я понял из Ваших слов, такое "непоявление" - известный факт. Как же с ним бороться? |
|
Вернуться к началу |
|
 |
APopov
Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
|
Добавлено: Пт 13 Ноя 2015 15:45 Заголовок сообщения: |
|
|
Я с "исчезающей" графикой в своих модулях не сталкивался.
редко сталкивался с последствиями - семантика есть, объекта нет или графика у объекта пустая - как правило это результаты импортов mif/mid или dxf.
в своих модулях мы используем такие правила:
*) делать MapObjects.UpdateChanges() через какое-то кол-во объектов, например через 10000
Код: |
while (...)
{
createOrUpdateObject();
if (++i % 10000 == 0) //% это mod
{
MapObjects.UpdateChanges();
MapObjects = IngeoApp.ActiveDB.MapObjects;//таким образом сбрасываем кэш транзакции, чтоб память не жралась
}
}
|
тут правда есть проблема - откатить такое создание целиком это отдельная серьёзная задача. так что нужно решать что важнее - сделать изменения или иметь возможность откатиться.
*) убедится, что территория базы покрывает создаваемые объекты. Если объекты вне территории создавать, то они кидаются в корневой сектор слоя, который со временем может переполнится и не сохранять новые объекты и ваще глюков можно нахвататься _________________ ОАО "Самара-Информспутник",
инженер-программист Попов Артем |
|
Вернуться к началу |
|
 |
APopov
Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
|
Добавлено: Пт 13 Ноя 2015 15:52 Заголовок сообщения: |
|
|
insertvertex никогда не подводил.
правда был глюк в C# в режиме Debug некоторые точки (как правило последние) оказывались равны 0.
Но в release сборке такого не было и вроде больше к этому мы не возвращались.
Были проблемы с другими методами
Код: |
// эти две процедуры живы только потому что существуед баг при использовании AddPartsFrom
// к контуру в котором уже есть части
procedure InsertContourPartsFrom(const destCont, srcCont:IIngeoContour);
procedure AddContourPartsFrom(const destCont, srcCont:IIngeoContour);
function ExtractContourPart(const inApp: IIngeoApplication;
const iCont :IIngeoContour; cpNo :integer):IIngeoContour;
|
там реализованы очевидные вещи через
Код: | iCP.GetVertex(j, x, y, ac);
iResCP.InsertVertex(j, x, y, ac);
|
т.е. InsertVertex для нас надёжная процедура _________________ ОАО "Самара-Информспутник",
инженер-программист Попов Артем |
|
Вернуться к началу |
|
 |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Чт 26 Ноя 2015 18:55 Заголовок сообщения: |
|
|
Спасибо за ответы. А есть ли другие способы обеспечить появление на карте всех участков, кроме как выполнением MapObjects.UpdateChanges() только через определенное количество участков? Поскольку этот способ порождает, как уже упоминалось, много лишних забот. |
|
Вернуться к началу |
|
 |
Николаускас
Зарегистрирован: 27.11.2013 Сообщения: 52
|
Добавлено: Ср 16 Дек 2015 13:53 Заголовок сообщения: |
|
|
Вопрос снимается. Буду просто проверять входит ли выгружаемый участок в границы территории. Раз такая беда с этими секторами. Всем спасибо за ответы. |
|
Вернуться к началу |
|
 |
|