RUS  ENG 

Изменение типа объекта

Страницы: 1
RSS
Изменение типа объекта
 
Здравствуйте, столкнулись с такой ситуацией.
В карту импортировали отметки высот, которые распознались как текст. Затем вытащили сам текст и занесли его в базу данных отметок. То есть получился объект-текст с подключенной к нему базой данных, у которого в поле "высотная отметка" записана текущая высота.
При построении рельефа по этим высотам, слой рельефа создается, но пустой.
Как с этим быть?
Если рельеф строится только по примитивам, то как тогда изменить графический тип "текст" на тип "примитив"?
 
Текстовый объект на самом деле тоже примитив, но который в построении рельефа не участвовал. Как минимум сделаем чтобы за точку при построении рельефа бралась точка привязки текстового объекта. Сегодня обновление выложим.
А вообще, нужно бы и преобразование текста в символ добавить, и операцию по преобразованию текстовых объектов в слой символов с переносом текста в таблицу. А можно и скрипт написать по замене текста на символ:


Sub TextToSymbol()

'Открываем слой с текстами
Set L = CreateObject("zululib.Layer")
L.Open "d:\Test\222"

'Создаем кружок
Set Circ = CreateObject("zululib.ZEllipse")
Circ.SetEllipse 0, 0, 3, 3, 0, True

'Создаем стиль
Set St = CreateObject("zululib.ElemStyle")

'Создаем символ
Set Sym = CreateObject("zululib.Symbol")

'Записываем в символ кружок
Sym.AddEllipse Circ, St

'Добавляем символ в коллекцию символов слоя
L.Symbols.AddItemEx Sym, 1

set Keys = L.ElementKeys

For i=1 To Keys.count

Set El = L.Elements.Item(Keys(i))

'Если объект текстовый
If El.GraphType = 6 Then

'Точка привязки текста
X = El.Points.GetX(1)
Y = El.Points.GetY(1)

'Удаляем текст
L.DeleteElement Keys(i)

'Пишем символьный объект
Id = L.AddSimpleSymbol(X, Y, 0, 1, 100, 0)

'Присваиваем ему ID удаленного текcтового объекта
L.ChangeElemID Id, Keys(i), false

End If
Next
End Sub
 
Доброе утро, скачал обновления, но рельеф по надписям все равно не строится
 
Проверил. У нас строится. Вы все обновили? Если серверная версия, то сервер тоже нужно обновить.
Пришлите слой на [email protected] проверим.
 
А вот сервер я не обновил, попробую
 
Обновил сервер, все заработало, спасибо большое!
Страницы: 1