RUS  ENG 

Тематическая раскраска

Страницы: 1
RSS
Тематическая раскраска
 
Добрый день.Подскажите имеет ли значение где создавать файл тематической раскраски? я создаю так
subOpenRs1 "SELECT * from tbobject "
theme.Create CurrentProject.Path & "\" & "tmp.ztm", "tmp", MapCtrl3.map.Layers.Active.Name
Do Until rsRs1.EOF
theme.Parameter(rsRs1!idZulu, eThemeLineColor) = 255
theme.Parameter(rsRs1!idZulu, eThemeLineWidth) = 2
rsRs1.MoveNext
Loop
theme.Save
MapCtrl3.map.Layers.Active.ThemeName = CurrentProject.Path & "\" & "tmp.ztm"
на локальной карте все работает. но при обращении к сетевой карте закраска не происходит.
 
Раскраску нужно создавать, сперва создав и заполнив объект Theme а затем добавить этот объект в коллекцию тем слоя. Никаких имен файлов. Это устаревшая досерверная реализация.

Вот пример скрипта:

Sub CreateTheme()

Set T = CreateObject("zululib.Theme")
Set L = CreateObject("zululib.Layer")

L.Open "d:\Termo\teplosam.b00"

Set Elems = L.EnumElements

Elems.MoveFirst

do
if Elems.IsEOF then exit do
if Elems.TypeID = 3 then
'22 - eThemeSymbolSize
T.Parameter (Elems.ElemID, 22) = 300
end if
Elems.MoveNext
loop

T.UserName = "Пример темы"
'Добавляем тему в слой
Id = L.Themes.AddTheme(T)

End Sub
 
немного не понятно, а как теперь ее подключит к слою?UpdateTheme? как определить id раскраски?
 
ID возвращается при включении темы в коллекцию слоя
Id = L.Themes.AddTheme(T)
 
Set T = CreateObject("zululib.Theme")
Set L = CreateObject("zululib.Layer")

L.Open MapCtrl3.Map.Layers.Item(4).Name

subOpenRs1 "SELECT * from tb "
Do Until rsRs1.EOF
T.Parameter(rsRs1!idZulu, eThemeFillStyle) = 2
T.Parameter(rsRs1!idZulu, eThemePatColor) = RGB(0, 51, 255)
rsRs1.MoveNext
Loop

T.UserName = "пример темы"
id = L.Themes.AddTheme(T)
MapCtrl3.Map.Layers.Item(4).Themes.UpdateTheme (id)

id всегда -1 и раскраски не происходит
 
Вы простенькое напишите сперва что-то.
В VBasic такой код работает.

Private Sub Command6_Click()
Set T = CreateObject("zululib.Theme")
Set L = CreateObject("zululib.Layer")

L.Open "d:\Termo\teplosam.b00"

T.Parameter(1, eThemeFillStyle) = 2

T.UserName = "bbbbbb"

id = L.Themes.AddTheme(T)

MsgBox id

End Sub



А у себя, убедитесь, что слой открылся, что ID объектов в Parameter нормальные и т.д Какая версия программы?
 
Версия 7.0.0.5367
 
что то совсем ни как... скажите, чтобы открыть слой, нужно приписать путь до него
L.Open MapCtrl3.Map.Layers.Item(4).Name вот так?
или нужно обязательно L.Open "zulu://....."
 
И так и так можно. После открытия для проверки MsgBox L.UserName прочтите. Если не пустое, значит открылся
 
MsgBox возвращает наименование слоя.но раскраски нет
Скажите чтоб раскраска применилась нужны какие то дополнительные права на сервере zulu? или это может делать любой пользователь с правами просмотра
 
Раскраски нет на диске или она не появляется на карте? Чтобы раскраска применилась, нужно ей enable сказать http://politerm.com/zuludoc/zuluax/Themes_cls.htm

Если бы прав не хватало, сообщение было бы, что недостаточно прав. Пройдите сценарий сперва хотя бы локально. Та нет проблем никаких.
 
я уже и так на локальной работаю. на диске раскраска появляется, а на карте нет. GetEnabled возвращает true
 
Именно мой пример не работает или Ваш код?
 
ваш код.единственное что я поменяла это открытие своего слоя , изменяю не стиль заливки а цвет и свой id написала
Set T = CreateObject("zululib.Theme")
Set L = CreateObject("zululib.Layer")
L.Open MapCtrl3.Map.Layers.Item(Me.swlayer.Column(1)).Name
T.Parameter(16145, eThemePatColor) = RGB(0, 51, 255)
T.UserName = "bbbbbb"
id = L.Themes.AddTheme(T)
L.Themes.SetEnabled id, True
MsgBox id
 
Пришлите телефон для связи. [email protected]
 
отправила
 
Сервер и клиентскую часть обновили. тематическая расскраска не добавляется не вручную (через zulu) не программно
 
Добрый день!

Подскажите пожалуйста, возможно ли в тематической раскраске задать сложный тип линии?
Из предопределенных линий ничего не подходит (нужна более частая штриховка), примерно, как на картинке.Спасибо.
Изменено: jula - 29.04.2019 17:22:20
 
Цитата

Подскажите пожалуйста, возможно ли в тематической раскраске задать сложный тип линии?
В тематической раскраске слоя можно использовать стили линий слой. Если этот сложный стиль присутствует в коллекции стилей слоя, то и в раскраске может применяться
 
Это понятно. Можно ли добавить еще один стиль (как на картинке)?
Если смотреть стили линий Zulu - то это №52+№53.
Спасибо.
 
Свои стили линий пользователь создает сам.
https://www.politerm.com/zuludoc/index.html#struct_linestyle.html
 
Спасибо огромное, слона-то я и не приметила!
 
Добрый день!

Есть ли метод, позволяющий скопировать пользовательский тип линии из обычного слоя в слой InMemory?
Или создать пользовательский тип линии в слое InMemory?
Спасибо.
Страницы: 1