| Обсуждение |
| Ошибка "number" not understood [ shamsi ] Воскресенье, 13 октября 2019, 23:21
Добрый день!
Метод CombineFeatureset выдает ошибку '"number" not understood' Правильно ли я использую метод после создания геометрии?
objGDBFeature.SetVertex(1, 1, x, y, GdbVertexSetModes.gdbVertexInsert);
objGDBFeature.FeatureType = (GDBFeatureType)objGDBFeatureType;
objGDBFeatureset.Feature = (GDBFeature)objGDBFeature;
objGDBThemeBrowser.CombineFeatureset(objGDBFeatureset,GdbLogicalOps.gdbLogicalNone); |
|
| [ shamsi ] Вторник, 15 октября 2019, 12:11
Есть ли возможность позиционирования В интерактивном просмотре темы через COM? |
|
| [ Владимир Полянский ] Вторник, 15 октября 2019, 12:53
Добрый день! Какую версию ObjectLand вы используете? Не могли бы вы прислать пример (а лучше проект), чтобы мы могли воспроизвести ошибку. Или хотя бы опишите последовательность действий, приведшая к ошибке. |
|
| [ Владимир Полянский ] Вторник, 15 октября 2019, 13:00
|
| [ shamsi ] Вторник, 15 октября 2019, 21:10
Здравствуйте Владимир!
Спасибо за ответ.
Пользуюсь ObjectLand 2.6
Вот часть кода в котором происходит полный процесс введший к ошибке:
objGDBFeatureset = objGDBLayer.OpenFeatureset(false);// Получение набора геометрий слоя.
objGDBFeature = objGDBEngine.CreateFeature(GdbSpatialCategories.gdbSpatialCategoryPoint);// Создание точечной геометрии.
objGDBFeature.SetVertex(1, 1, 10, 10, GdbVertexSetModes.gdbVertexInsert);// Установка координаты точечной геометрии.
objGDBFeature.Height = 800; // Установка высоты условного обозначения.
objGDBFeature.ZoomThreshold = 40;// Установка порога увеличения условного обозначения.
objGDBFeature.FeatureType = (GDBFeatureType)objGDBFeatureType;// Установка типа геометрии.
objGDBFeatureset.Feature = (GDBFeature)objGDBFeature;// Добавление созданной геометрии в набор геометрий слоя.
objGDBThemeBrowser.CombineFeatureset(objGDBFeatureset,GdbLogicalOps.gdbLogicalNone);
Как я понял ошибка возникает по причине добавлении, в коллекцию "objGDBFeatureset" новой геометрии добавив строку "objGDBFeatureset = objGDBLayer.OpenFeatureset(false);// Получение набора геометрий слоя." перед методом ".CombineFeatureset();" ошибка устранилась и выделяются все геометрии слоя. |
|
| [ Максим Юрьевич Трухачёв ] Понедельник, 21 октября 2019, 20:43
Последние три строки Вашего кода выглядят так:
objGDBFeature.FeatureType = (GDBFeatureType)objGDBFeatureType;// Установка типа геометрии.
objGDBFeatureset.Feature = (GDBFeature)objGDBFeature;// Добавление созданной геометрии в набор геометрий слоя.
objGDBThemeBrowser.CombineFeatureset(objGDBFeatureset,GdbLogicalOps.gdbLogicalNone);
Возможно, надо так:
objGDBFeature.FeatureType = (GDBFeatureType)objGDBFeatureType;// Установка типа геометрии.
objGDBFeature.Update() // не уверен насчёт скобок, я пишу на VB.Net, там - так;
objGDBFeatureset.Feature = (GDBFeature)objGDBFeature;// Добавление созданной геометрии в набор геометрий слоя.
objGDBThemeBrowser.CombineFeatureset(objGDBFeatureset,GdbLogicalOps.gdbLogicalNone);
Метод Update надо вызывать после всех модификаций свойств, он обновляет запись о Feature в ГБД. |
|
ОтветитьЗнаком «*» отмечены обязательные для заполнения поля. |
| |