Здравствуйте! Пытаюсь создать слой локально Не меняется режим и тип полилинии.
Написал метод, который добавляет к слою полилинию
Код
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: 'Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена.'
Хочу выставить режим 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). Возможно нужно просто ошибку возвращать.