RUS  ENG 

Создание слоя по данным из текстового файла локально и на сервере

Страницы: 1
RSS
Создание слоя по данным из текстового файла локально и на сервере
 
Здравствуйте!
Пытаюсь создать слой локально
Не меняется режим и тип полилинии.

Написал метод, который добавляет к слою полилинию
Код
public static void AddPipeToLayer(double xStartCoodinate, double yStartCoordinate,
            double xEndCoodinate, double yEndCoordinate, Layer zuluLayer)
        {
            //Создаю полилинию
            var elemStyle = new ElemStyle();
            elemStyle.PatColor = 1;
            var oPolyline = new PolyLine();
            oPolyline.AddPoint(xStartCoodinate, yStartCoordinate);
            oPolyline.AddPoint(xEndCoodinate, yEndCoordinate);

            int plId = zuluLayer.AddPolyLine(oPolyline, elemStyle, 8, 1);

            //Добавляю полилинию к слою
            Element plElement = zuluLayer.Elements[plId];

            //Режим и тип не меняется
            bool isChanged = plElement.ChangeTypeMode(8, 1);

        }
Хочу выставить режим 8 и тип 1, а графический тип - участок.


Полилинии создаются, но режим и тип не присваиваются.
Графический тип: Простая полилиния
Тип: -1
Режим: -1


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

При добавлении полилинии к слою появляется ошибка.
System.AccessViolationException: 'Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.'
Изменено: Станислав Павловицкий - 27.09.2019 16:31:59
 
Цитата
Хочу выставить режим 8 и тип 1, а графический тип - участок.


Полилинии создаются, но режим и тип не присваиваются.
Графический тип: Простая полилиния
Тип: -1
Режим: -1
Слой содержит такой тип и режим?

Написал макрос для существующего слоя сети. Работает.
Код
Sub AddPolyline
    
Set zuluLayer = Zulu.ActiveMapDoc.Layers.Active    
        
Set oPolyline = CreateObject("ZuluLib.PolyLine")

oPolyline.AddPoint 0, 0
oPolyline.AddPoint 1000, 1000

ID = zuluLayer.AddPolyLine (oPolyline, Nothing, 8, 1)


End Sub

Сейчас, если требуемый тип и режим в структуре слоя отсутствует, то создается примитив (-1, -1). Возможно нужно просто ошибку возвращать.
Страницы: 1