RUS  ENG 

связанные объекты

Страницы: 1
RSS
связанные объекты
 
Добрый день!подскажите как можно найти все линии исходящие из выбранной точки(берут начало в этой точке). нашла что Layer.NetworkObjects должен помочь, но не могу понять как его использовать.
 
Если одиночный запрос, быстрей будет использовать метод слоя Layer.GetIncidentElements: http://politerm.com.ru/zuludoc/zuluax/Layer_GetIncidentElements.htm
Если же в цикле для многих объектов, то Set nw = Layer.NetworkObjects и дальше nw.GetIncidentKeys
http://politerm.com.ru/zuludoc/zuluax/NetworkObjects_GetIncidentKeys.htm
 
Dim a
Set nw = Layer.NetworkObjects
ElemID = MapCtrl3.CurrentID
If ElemID >= 0 Then
FirstNodeID = ElemID
MsgBox ElemID
nw.GetIncidentKeys FirstNodeID, 2
End IF
Пишу так.во второй строке выдает ошибку object required (run time error 424).что не так?
библиотеки вроде все подключены, навсякий случай подскажите какие библиотеки отвечаю за это дело?
 
В какой среде пишите? Кто такой Layer?
 
Цитата:
Если одиночный запрос, быстрей будет использовать метод слоя Layer.GetIncidentElements: http://politerm.com.ru/zuludoc/zuluax/Layer_GetIncidentElements.htm
Если же в цикле для многих объектов, то Set nw = Layer.NetworkObjects и дальше nw.GetIncidentKeys
http://politerm.com.ru/zuludoc/zuluax/NetworkObjects_GetIncidentKeys.htm

в вашем примере тогда что означает layer?
пишу на VBA
 
Layer - это абстрактный объект из объектной модели, а в Вашем случае это должен быть конкретный экземпляр такого объекта (член карты или созданный автономно).
Если MapCtrl3.CurrentID - это объект активного слоя, то этот слой будет MapCtrl3.Map.Layers.Active
Тогда его сеть будет:
dim nw as NetworkObjects
Set nw = MapCtrl3.Map.Layers.Active.NetworkObjects
 
что то ничего не получается( MapCtrl3.CurrentID - это активный объект на слое. если так Set nw = MapCtrl3.Map.Layers.Active.NetworkObjects то выходит ошибка wrong number of arguments or invalid property assignment
 
Где Ваш текст программы? Там нечему неполучаться
 
Dim nw As NetworkObjects
Set nw = MapCtrl3.map.Layers.Active.NetworkObjects
ElemID = MapCtrl3.CurrentID
If ElemID >= 0 Then
FirstNodeID = ElemID
nw.GetIncidentKeys FirstNodeID, 2
End If
на второй строке выдает ошибку
 
Посмотрите описание метода NetworkObjects http://politerm.com.ru/zuludoc/zuluax/Layer_NetworkObjects.htm
 
спасибо.все получилось.буду дальше разбираться
 
еще вопрос если я так напишуDim elems As Elements
Dim nw As NetworkObjects
Set nw = MapCtrl3.map.Layers.Active.NetworkObjects(1)
Set elems = nw.GetIncidentKeys(FirstNodeID, 2)
будет ли это правильно? у меня почему то нету метода GetIncidentKeys. где ошибка?
 
GetIncidentKeys возвращает не Elements, а ElementKeys
http://politerm.com.ru/zuludoc/zuluax/ElementKeys_cls.htm
В VBA не выпадают подсказки? Поставьте в References галочку на "Zulu 7.0 Library"
 
Прошу прощения вопрос такого плана, забыла уточнить у меня Zulu 6 это принципиально или надо 7 версию чтоб до этих методов добраться?
 
Можно и 6.0, если там есть эти методы. Не факт. 6.0 уже давно не сопровождаем и лучше на 7.0 перейти.
 
а в 6 версии есть аналоги этого метода или хотя бы как узнать направления движения сети и количество разветвлений от выбранной точки?
 
Layer.GetIncidentElements должен быть. Насчет NetworkObjects не уверен. У нас нет шестой версии. Не посмотреть. Посмотрите каким-нибудь Object Browser. Или в VBA должны подсказки выпадать. Если не выпадает в подсказке метод, значит нет.
Страницы: 1