MapBasic. Поворот символа

MapInfo, MapBasic
Ответить
proggis
Интересующийся
Сообщения: 24
Зарегистрирован: 05 сен 2009, 17:59
Репутация: 0

MapBasic. Поворот символа

Сообщение proggis » 08 фев 2013, 10:31

Читаю UserGuide, все меньше понимаю.
Имеем набор таблиц, выгруженный из Civil'a с атрибутом - поворот блока (радианы, в столбцы пересчитываю в градусы). Необходимо каждый символ повернуть на угол поворота из таблицы. Присвоить шрифт и угол можно с помощью функции MakeFontSymbol-т.е. значение угла из таблицы выступает аргументом rotation.
Не могу понять, как получить доступ к атрибутике определенного объекта (курсор)

juffin_h
Завсегдатай
Сообщения: 265
Зарегистрирован: 22 окт 2012, 08:35
Репутация: 50
Откуда: Нижний Новгород

Re: MapBasic. Поворот символа

Сообщение juffin_h » 08 фев 2013, 11:51

Код: Выделить всё

Fetch  { First | Last | Next | Prev | Rec  n }  From   table

proggis
Интересующийся
Сообщения: 24
Зарегистрирован: 05 сен 2009, 17:59
Репутация: 0

Re: MapBasic. Поворот символа

Сообщение proggis » 14 фев 2013, 11:05

Код: Выделить всё

Include "MapBasic.Def"
Dim angle As Float
Dim sym_marker as Symbol
Dim counter as Integer
Dim current_object as Object
Set Map
Layer 1 Editable On
angle=0
counter=0
Fetch First From _1
Do While Not EOT(_1)
angle=_1.col1
current_object=_1.obj
sym_marker=MakeFontSymbol(65,RED,24,"Wingdings",40,angle)
Alter Object current_object
	Info OBJ_INFO_SYMBOL, sym_marker
update _1
	set obj=current_object
counter = counter + 1
Fetch Next From _1
Loop
print angle
Этот код все символы перемеoftn на месо последнего символа. В чем ошибка?

V.Maxim
Участник
Сообщения: 62
Зарегистрирован: 14 фев 2012, 16:07
Репутация: 13

Re: MapBasic. Поворот символа

Сообщение V.Maxim » 14 фев 2013, 11:41

ну так при обновлении записи нужно указать, какую именно строку нужно обновить. Т.е. в update после set добавить where RowID=counter

V.Maxim
Участник
Сообщения: 62
Зарегистрирован: 14 фев 2012, 16:07
Репутация: 13

Re: MapBasic. Поворот символа

Сообщение V.Maxim » 14 фев 2013, 11:42

а, если использовать counter в качестве указателя строки, тогда наверное не нужно его обнулять, пусть так и начинается с 1

proggis
Интересующийся
Сообщения: 24
Зарегистрирован: 05 сен 2009, 17:59
Репутация: 0

Re: MapBasic. Поворот символа

Сообщение proggis » 26 фев 2013, 14:10

Есть набор слоев. К объектам каждого необходимо последовательно получить доступ
делаю это так:

Код: Выделить всё

layer_count=MapperInfo(map_id, MAPPER_INFO_LAYERS)
For i=1 to layer_count
       layer_name=LayerInfo(map_id, i, 1)
       Fetch First From layer_name
       *********
Next 
Fetch ничего не выбирает, думаю, не понимает переменную layer_name.
Как решаете подобные проблемы вы?

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: MapBasic. Поворот символа

Сообщение dab » 26 фев 2013, 15:24

Правило форума: каждому новому вопросу - отдельная тема.
Команда Fetch относится к таблице, а не к слою. Названия таблицы и слоя могут различаться.

Код: Выделить всё

iNumTabs = NumTables()
For i = 1 to iNumTabs
    table_name = TableInfo(i, TAB_INFO_NAME)
    Fetch First From table_name
    ***
Next

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость