несколько вопросов по MapInfo

MapInfo, MapBasic
Ответить
Ginger
Новоприбывший
Сообщения: 2
Зарегистрирован: 20 дек 2009, 18:31
Репутация: 0

несколько вопросов по MapInfo

Сообщение Ginger » 20 дек 2009, 18:39

Помогите пожалуйста спрвиться с несколькоми задачками, а то у меня никак не получается

1.как вывести на экран сведения о типе и цвете линии, штриха для выбранного объекта при помощи функции ObjectInfo, и вывести информацию в в новом окне при помощи оператора NOTE???

2. как написать программу на MapBasic, которая рассчитывает расстояние между моим домом и выбранным объектом в милях и вывести информацию при помощи оператора NOTE

3. что такое скроллинг, и как написать программу на MapBasic, которая выполняет скроллинг карты так, чтобы мой дом был виден на экране. для скроллинга карты используется оператор Set Map, при этом программа должна также выполнить масштабирование карты. Масштаб и одном дюйме 200 километров

зараннее огромное спасибо

max117
Интересующийся
Сообщения: 24
Зарегистрирован: 12 дек 2007, 23:35
Репутация: 0
Откуда: Москва
Контактная информация:

Re: несколько вопросов по MapInfo

Сообщение max117 » 20 дек 2009, 23:44

1. Для этого StyleAttr( ) с SYMBOL_COLOR, PEN_INDEX
2. взять координаты дома (х1, y1) и объектом (х2, y2) с помощью CentroidX и CentroidY, а затем с помощью Distance ( x1,y1,x2,y2, "mi")
полученным значениям присвой переменную (допустим Х) и просто выведи ее через Note X
3. Извлечь координаты дома (x,y), если одно окно, то
Set Map Scale screen_dist [ Units dist_unit ] For map_dist [ Units dist_unit ]. синтаксис см Help for MapBasic.

Ginger
Новоприбывший
Сообщения: 2
Зарегистрирован: 20 дек 2009, 18:31
Репутация: 0

Re: несколько вопросов по MapInfo

Сообщение Ginger » 21 дек 2009, 04:21

Можно поподробней и если можно с примерами???
Первый раз с эти сталкиваюсь и не получается разобраться

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

Re: несколько вопросов по MapInfo

Сообщение Alexey » 21 дек 2009, 06:47

Вот пример функции, которая извлекает данные о стиле обекта.
(здесь используется часть доп. функций вроде IsPointObj - но из названия понятно что они делают)

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

Sub GetObjStyles(mObj as Object, mSYMBOL_COLOR as integer, mSYMBOL_POINTSIZE as integer ,mSYMBOL_CODE as integer, mPEN_WIDTH as integer, mPEN_PATTERN as integer, mPEN_COLOR as integer, mBRUSH_PATTERN as integer, mBRUSH_FORECOLOR as integer, mBRUSH_BACKCOLOR as integer)

	dim mSymbol as Symbol
	dim mPen as Pen
	dim mBrush as Brush

	if IsPointObj(mObj) then
		mSymbol = ObjectInfo(mObj,OBJ_INFO_SYMBOL)
		mSYMBOL_POINTSIZE = StyleAttr(mSymbol,3)
		mSYMBOL_CODE = StyleAttr(mSymbol,SYMBOL_CODE)
		mSYMBOL_COLOR= StyleAttr(mSymbol,SYMBOL_COLOR)
	end if

	if IsLineObj(mObj) then
		mPen = ObjectInfo(mObj,OBJ_INFO_PEN)
		mPEN_WIDTH = StyleAttr(mPen,PEN_WIDTH)
		mPEN_PATTERN = StyleAttr(mPen,PEN_PATTERN)
		mPEN_COLOR = StyleAttr(mPen,PEN_COLOR)
	end if

	if IsAreaObj(mObj) then
		mBrush = ObjectInfo(mObj,OBJ_INFO_BRUSH)
		mBRUSH_PATTERN = StyleAttr(mBrush,BRUSH_PATTERN)
		mBRUSH_FORECOLOR = StyleAttr(mBrush,BRUSH_FORECOLOR)
		mBRUSH_BACKCOLOR = StyleAttr(mBrush,BRUSH_BACKCOLOR)
	end if

end sub

Ответить

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

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

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