MapBasic

MapInfo, MapBasic
Ответить
Avista
Новоприбывший
Сообщения: 3
Зарегистрирован: 29 май 2010, 22:10
Репутация: 0

MapBasic

Сообщение Avista » 29 май 2010, 22:16

Здравствуйте.
Имеется карта со списком (ID_rex.tab). На карте-символы, в списке-разная инфа о символах (в том числе колонка "Angle", где сидят значения в долях градуса).
Подскажите, пожалуйста, как написать программу в MapBasic, чтобы повернуть объекты на угол, равный значению из колонки "Angle".
Спасибо.

Аватара пользователя
Alexey
Участник
Сообщения: 56
Зарегистрирован: 21 май 2008, 07:47
Репутация: 1

Re: MapBasic

Сообщение Alexey » 30 май 2010, 19:48

Понимаю, что вопрос про Mapbasic, но может быть вам для решения задачи поможет стандартная программа "Rotate Symbols" (загружаем в Tools - Tools Manager)
Там есть возможность повернуть символы на значение в одной из колонок таблицы.

А если вам нужно это сделать именно в коде Mapbasic - см. подробнее про функцию: Rotate(object, angle)

Avista
Новоприбывший
Сообщения: 3
Зарегистрирован: 29 май 2010, 22:10
Репутация: 0

Re: MapBasic

Сообщение Avista » 31 май 2010, 16:28

Спасибо за ответ.
Но в примере этой функции RotateObject = rotate(selection.obj, 45), где angle=45, т.е. фиксированное значение.
А мне необходимо повернуть один символ на 45,09766655, второй на 67,3487456, итд, причем значения углов есть
в колонке "Angle"!!!

Аватара пользователя
Alexey
Участник
Сообщения: 56
Зарегистрирован: 21 май 2008, 07:47
Репутация: 1

Re: MapBasic

Сообщение Alexey » 31 май 2010, 19:56

Получилось ли вам попробовать стандартную программу "Rotate Symbols"?
В чем не хватает ее функционала?

Avista
Новоприбывший
Сообщения: 3
Зарегистрирован: 29 май 2010, 22:10
Репутация: 0

Re: MapBasic

Сообщение Avista » 31 май 2010, 21:14

Программа хороша, и может помоч, Но помимо этой задачи у меня выполняются и другие. Хотелось бы
все объединить в один "*.mbx" (для автомотизации).

Вячеслав-1
Новоприбывший
Сообщения: 2
Зарегистрирован: 24 авг 2012, 13:56
Репутация: 0

Re: MapBasic

Сообщение Вячеслав-1 » 24 авг 2012, 20:25

Здравствуйте!
Приходилось ли вам использовать в логических конструкциях логические функции? Может вы мне поможете найти ошибку в
несложной конструкции:
' Объявляем логическую фнкцию
Declare Function narisovan as Logical
'--------------------------------------
' Потом описываем логическую функцию
Function narisovan as Logical
...................
if ....... then
narisovan=true
else
narisovan=false
end if
................................
end Function
'--------------------------------------
' Затем применяем логическую функцию в одной из процедур
Sub Find_objects
........................
if narisovan then goto t2 end if
........................
End Sub 'Find_objects
'--------------------------------------
При этом программа транслируется без ошибок, начинает выполняться и выдаёт ошибку на строчке:
if narisovan then goto t2 end if
с сообщением "Не определена переменная или поле narisovan.
Почему здесь возникает ошибка?
Заранее благодарю за ответ. С уважением, Ярков Вячеслав.

Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

Re: MapBasic

Сообщение Slinger » 24 авг 2012, 20:36

Потому что в понимании mapbasic'a "narisovan" это необъявленная переменная. А если это функция и в данном случае без аргументов, то должны быть скобки. То есть:

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

Declare Function narisovan() as Logical
И соответственно:

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

if narisovan() then goto t2 end if

Вячеслав-1
Новоприбывший
Сообщения: 2
Зарегистрирован: 24 авг 2012, 13:56
Репутация: 0

Re: MapBasic

Сообщение Вячеслав-1 » 25 авг 2012, 19:40

Спасибо за помощь. Но со скобками у меня не работает. А если ещё и описать, как глобальную переменную narisovan, тогда всё работает без ошибок.

Ответить

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

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

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