- •Add Cartographic Frame
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор Autolabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Оператор Call
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Оператор Commit Table
- •Оператор Continue
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложение Control RadioGroup
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Оператор Create Collection
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create MultiPoint
- •Оператор Create Point
- •Оператор Create PrismMap
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Оператор DDEExecute
- •Оператор DDEPoke
- •Оператор DDETerminate
- •Оператор DDETerminateAll
- •Оператор Declare Function
- •Оператор Declare Sub
- •Оператор Define
- •Оператор Delete
- •Оператор Dialog
- •Оператор Dialog Preserve
- •Оператор Dialog Remove
- •Оператор Dim
- •Оператор Do Case...End Case
- •Оператор Do...Loop
- •Оператор Drop Index
- •Оператор Drop Map
- •Оператор Drop Table
- •Оператор End MapInfo
- •Оператор End Program
- •Процедура EndHandler
- •Оператор Error
- •Оператор Exit Do
- •Оператор Exit For
- •Оператор Exit Function
- •Оператор Exit Sub
- •Оператор Export
- •Оператор Fetch
- •Оператор Find
- •Оператор Find Using
- •Предложение Font
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Graph
- •оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Оператор Line Input
- •Процедура Main
- •Оператор Map
- •Оператор Menu Bar
- •Оператор Metadata
- •Оператор Note
- •Оператор Objects Check
- •Оператор Objects Clean
- •Оператор Objects Combine
- •Оператор Objects Disaggregate
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Snap
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Table
- •Оператор Open Window
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Оператор Server Commit
- •Оператор Server Create Map
- •Оператор Server Create Table
- •Оператор Server Create Style
- •Оператор Server Disconnect
- •Оператор Server Fetch
- •Оператор Server Refresh
- •Оператор Server Rollback
- •Оператор Server Set Map
- •Оператор Set Application Window
- •Оператор Set Area Units
- •Оператор Set Browse
- •Оператор Set Cartographic Legend
- •Оператор Set Command Info
- •Оператор Set CoordSys
- •Оператор Set Date Window
- •Оператор Set Digitizer
- •Оператор Set Distance Units
- •Оператор Set Drag Threshold
- •Оператор Set Event Processing
- •Оператор Set File TimeOut
- •Оператор Set Format
- •Оператор Set Graph
- •Оператор Set Handler
- •Оператор Set Layout
- •Оператор Set Legend
- •Оператор Set Map
- •Оператор Set Map3D
- •Оператор Set Next Document
- •Оператор Set Paper Units
- •Оператор Set PrismMap
- •Оператор Set ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Objects Move
- •Оператор Objects Offset
- •Функция Offset()
- •Функция SphericalOffset()
- •Функция SphericalOffsetXY()
- •Функция CartesianOffsetXY()
- •Функция LayerInfo( )
- •Оператор Register
- •Оператор Server Create Map
- •Функция TableInfo( )
Оператор Note
Оператор Note
Назначение:
Показывает сообщение в простом диалоговом окне.
Синтаксис:
Note message
где
message – выражение, результат которого будет показан в окне.
Описание:
Оператор Note создает простое диалоговое окно сообщений, сопровождающееся одной кнопкой "ОК".
Параметр message может быть выражением, не обязательно строковым. Если в результате вычисления выражения message получается величина объектного типа (Object), MapBasic автоматически преобразует его в строку (так как это делает функция Str$( )). Это строковое представление и будет выведено в диалоговом окне сообщений. Если message – строка, то максимальная длина должна быть не более 300 символов и может занимать только 6 строк.
Пример:
Note "Всего использовано записей: " + Str$( i_count )
Смотрите также:
Ask( ), Dialog, Print
352 |
Справочник MapBasic |
Функция NumAllWindows( )
Функция NumAllWindows( )
Назначение:
Возвращает количество окон, открытых MapInfo, включая специальные окна, такие как инструментальные панели и окно Информации.
Синтаксис:
NumAllWindows( )
Величина, полученная в результате:
Короткое целое число. Величина типа SmallInt.
Описание:
Функция NumAllWindows( ) определяет, сколько всего открыто окон программой MapInfo.
Чтобы определить количество открытых “документальных” окон MapInfo (Карт, Списков, Графиков и Отчетов), используйте функцию NumWindows( ).
Смотрите также:
NumWindows( ), WindowID( )
Справочник MapBasic |
353 |
Функция NumberToDate( )
Функция NumberToDate( )
Назначение:
Возвращает величину типа Date, созданную из величины типа Integer.
Синтаксис:
NumberToDate(numeric_date )
где numeric_date – восьмизначное целое число типа Integer в форме ГГГГММДД (например, 19951231).
Величина, полученная в результате:
Величина типа Date.
Описание:
Функция NumberToDate( ) возвращает дату, величину типа Date, используя восьмизначное целое число. Например, следующая функция будет иметь результат, равный 31 декабря 1995:
NumberToDate(19951231)
Пример:
Dim i_elapsed As Integer
i_elapsed = CurDate() NumberToDate(19950101)
’i_elapsed теперь равен числу дней, прошедших
’с 1 января 1995
Смотрите также:
StringToDate( )
354 |
Справочник MapBasic |
Функция NumCols( )
Функция NumCols( )
Назначение:
Возвращает число колонок таблицы.
Синтаксис:
NumCols(table)
где
table – имя открытой таблицы.
Величина, полученная в результате:
Короткое целое число. Величина типа SmallInt.
Описание:
Функция NumCols( ) возвращает число колонок, из которых состоит открытая таблица table.
В это число не входит специальная колонка "Object" (или "Obj" сокращенно), содержащая ссылки на графические объекты, присоединенные к таблице. Также в число колонок не включается другая специальная колонка RowID, содержащая номера строк таблицы.
Замечание: если таблица временная (например, полученная после оператора Add Column), то число колонок, полученное от функции NumCols( ) будет включать временную или временные колонки.
Ошибки:
В результате выполнения функции может генерироваться код ошибки: ERR_TABLE_NOT_FOUND, если таблица недоступна.
Пример:
Dim i_counter As Integer
Open Table "world"
i_counter = NumCols(world)
' i_counter содержит теперь число колонок WORLD
Смотрите также:
ColumnInfo( ), NumTables( ), TableInfo( )
Справочник MapBasic |
355 |
Функция NumTables( )
Функция NumTables( )
Назначение:
Возвращает число открытых на данный момент таблиц.
Синтаксис:
NumTables( )
Величина, полученная в результате:
Короткое целое число. Величина типа SmallInt.
Описание:
Функция NumTables( ) возвращает число открытых на данный момент таблиц.
Если в MapInfo открыта таблица, содержащая Карту улиц (StreetInfo), то на самом деле открыты две связанные таблицы. Например, когда Вы открываете таблицу DCWASHS (карта улиц Вашингтона), MapInfo открывает две составляющие таблицы DCWASHS1.TAB и DCWASHS2.TAB. Тем не менее MapInfo считает DCWASHS одной таблицей, поскольку составляющие таблицы являются частями одной Карты. Так же и функция NumTables( ) таблицу, содержащую Карту улиц, будет считать одной открытой таблицей, несмотря на то, что практически она состоит из двух.
Пример:
If Numtables( ) < 1 Then
Note "Нет открытых таблиц. Продолжение невозможно."
End Program
End If
Смотрите также:
Open Table, TableInfo( ), ColumnInfo( )
356 |
Справочник MapBasic |
Функция NumWindows( )
Функция NumWindows( )
Назначение:
Возвращает количество открытых на данный момент окон (Карт, Списков, Графиков и Отчетов).
Синтаксис:
NumWindows( )
Величина, полученная в результате:
Короткое целое число. Величина типа SmallInt.
Описание:
Функция NumWindows( ) возвращает число открытых на данный момент окон Карт, Списков, Графиков и Отчетов. Результат функции не зависит от того, в каком состоянии находится окно: свернуто в иконку или нет.
Чтобы определить общее количество выведенных на экран окон, включая вспомогательные (такие как окно Легенды, Информации), используется функция NumAllWindows( ).
Пример:
Dim num_open_wins As SmallInt
num_open_wins = NumWindows( )
Смотрите также:
NumAllWindows( ), WindowID( )
Справочник MapBasic |
357 |
Функция ObjectGeography( )
Функция ObjectGeography( )
Назначение:
Возвращает информацию о графическом объекте, определяющую его расположение.
Синтаксис:
ObjectGeography(object, attribute)
где
object – объектное выражение;
attribute – целочисленный код, определяющий результат функции.
Величина, полученная в результате:
Вещественное число. Величина типа Float.
Описание:
Функция ObjectGeography( ) возвращает информацию об определенных координатах и угловых величинах географических объектов. Координатами могут быть координаты точечного объекта или начальной точки прямой линии, минимальные или максимальные координаты объектов. А угловыми величинами – начальный и конечный углы дуги, угол поворота текста.
Параметр attribute должен принимать значения целочисленного кода, управляющего типом возвращаемой функцией информации. В следующей таблице в первой колонке приводятся имена кодов для функции ObjectGeography( ), которые установлены в файле стандартных определений MapBasic MAPBASIC.DEF.
Заметим, что некоторые значения для параметра attribute могут адресоваться объектам определенного типа. Например, начальный угол может быть считан только у объекта типа "дуга".
358 |
Справочник MapBasic |
Функция ObjectGeography( )
Значения attribute |
Результат функции (Величина типа Float) |
|
|
OBJ_GEO_MINX |
Минимальная X-координата минимального |
|
прямоугольного покрытия объекта, если его тип не |
|
“линия”. Иначе возвратится значение, равное |
|
OBJ_GEO_LINEBEGX. |
OBJ_GEO_MINY |
Минимальная Y-координата минимального |
|
прямоугольного покрытия объекта, если его тип не |
|
“линия”. Иначе возвратится значение, равное |
|
OBJ_GEO_LINEBEGY. |
OBJ_GEO_MAXX
OBJ_GEO_MAXY
Максимальная X-координата объекта или его минимального прямоугольного покрытия. Код не применим для объекта типа "точка". Для линий возвращается значение, равное OBJ_GEO_LINEENDX.
Максимальная Y-координата объекта или его минимального прямоугольного покрытия. Код не применим для объекта типа "точка". Для линий возвращается значение, равное OBJ_GEO_LINEENDY.
OBJ_GEO_ARCBEGANGLE
OBJ_GEO_ARCENDANGLE
OBJ_GEO_LINEBEGX
OBJ_GEO_LINEBEGY
OBJ_GEO_LINEENDX
OBJ_GEO_LINEENDY
OBJ_GEO_POINTX
OBJ_GEO_POINTY
OBJ_GEO_ROUNDRADIUS
OBJ_GEO_TEXTLINEX
OBJ_GEO_TEXTLINEY
OBJ_GEO_TEXTANGLE
Начальный угол дуги. Только для объекта типа "дуга".
Конечный угол дуги. Только для объекта типа "дуга".
X-координата начальной точки прямой линии. Только для объекта типа "линия".
Y-координата начальной точки прямой линии. Только для объекта типа "линия".
X-координата конечной точки прямой линии. Только для объекта типа "линия".
Y-координата конечной точки прямой линии. Только для объекта типа "линия".
X-координата точечного объекта.
Y-координата точечного объекта.
Диаметр окружности, которую можно вписать в закругление угла объекта типа "скругленный прямоугольник". Результат выдается в текущих координатных единицах (например, в градусах).
X-координата конца строки в текстовом объекте.
Y-координата конца строки в текстовом объекте.
Угол поворота текстового объекта.
Справочник MapBasic |
359 |
Функция ObjectGeography( )
Функция ObjectGeography() расширена поддержкой групп точек и коллекций. Оба типа поддерживают атрибуты 1 0 4 (координаты минимального описывающего объект прямоугольника (МОП).
OBJ_GEO_MINX (1) минимальная координата X МОП.
OBJ_GEO_MINY (2) минимальная координата Y МОП.
OBJ_GEO_MAXX (3) максимальная координата X МОП.
OBJ GEO_MAXY (4) максимальная координата Y МОП.
Пример:
Здесь наряду с функцией ObjectGeography( ) используется функция ObjectInfo( ) для определения типа объекта и оператор Set Map для перемещения центра просмотра Карты в начальную точку прямой линии.
Include "MAPBASIC.DEF"
Dim i_obj_type As Integer, f_x, f_y As Float
Open Table "city"
Map From city
Fetch First From city
'
'В этом месте программы выражение city.obj
'представляет графический объект, присоединенный
'к первой строке таблицы CITY.
'
i_obj_type = ObjectInfo(city.obj, OBJ_INFO_TYPE)
If i_obj_type = OBJ_LINE Then
f_x = ObjectGeography(city.obj, OBJ_GEO_LINEBEGX)
f_y = ObjectGeography(city.obj, OBJ_GEO_LINEBEGY)
Set Map Center (f_x, f_y)
End If
Смотрите также:
Centroid( ), CentroidX( ), CentroidY( ), ObjectInfo( )
360 |
Справочник MapBasic |
Функция ObjectInfo( )
Функция ObjectInfo( )
Назначение:
Возвращает стиль линии, штриха и другие величины, описывающие графический объект, а также его тип.
Синтаксис:
ObjectInfo(object, attribute)
где
object – выражение, результат которого есть величина типа Object; attribute – целочисленный код, определяющий результат функции.
Величина, полученная в результате:
Тип величины может быть SmallInt, Integer, String, Float, Pen, Brush, Symbol или Font в зависимости от значения параметра attribute.
Описание:
Функция ObjectInfo( ) возвращает основную информацию о графическом объекте, заданном параметром object. Объект может быть задан объектной переменной или выражением в формате table name.obj (где tablename – имя таблицы, к которой присоединен объект).
Каждый объект обладает некоторыми атрибутами. Например, атрибутом является тип объекта – это область, линия, дуга и т. д. Объекты определенных типов могут обладать различными наборами других атрибутов – стилей. Ими являются величины типа Pen, Brush и др. Функция ObjectInfo( ) может возвращать значения этих атрибутов. Возвращаемое значение зависит от того, каким задан параметр attribute.
Параметр attribute должен принимать значения целочисленного кода. В следующей таблице в первой колонке приводятся имена кодов для функции ObjectGeography( ), которые установлены оператором Define в файле стандартных определений MapBasic MAPBASIC.DEF. Для того, чтобы использовать имена кодов, Ваша программа в начале должна иметь оператор Include "MAPBA SIC.DEF".
Справочник MapBasic |
361 |
Функция ObjectInfo( )
Значения attribute
OBJ_INFO_TYPE
OBJ_INFO_PEN
OBJ_INFO_BRUSH
OBJ_INFO_TEXTFONT
OBJ_INFO_SYMBOL
OBJ_INFO_NPNTS
OBJ_INFO_SMOOTH
OBJ_INFO_FRAMEWIN
OBJ_INFO_FRAMETITLE
OBJ_INFO_NPOLYGONS
OBJ_INFO_NPOLYGONS+N
OBJ_INFO_TEXTSTRING
Результат функции
Целое число типа SmallInt, определяющее тип объекта (смотрите вторую таблицу).
Величина типа Pen. Стиль линии для объектов типа "дуга", "эллипс", "линия", "полилиния", "рамка", "область", "прямоугольник" и "сглаженный прямоугольник".
Величина типа Brush. Стиль штриховки объектов типа "эллипс", "рамка", "область", "прямоугольник" и "сглаженный прямоугольник".
Величина типа Font. Стиль шрифта текстового объекта. Замечание: Если текстовый объект принадлежит таблице (а не Отчету), то размер шрифта равен нулю, а размер шрифта динамически определяется MapInfo в зависимости от размера окна Карты.
Величина типа Symbol. Стиль символа точечного объекта.
Величина типа Integer. Число узлов в полилинии или в многоугольнике области.
Величина типа Logical. Признак сглаженности объекта типа "полилиния".
Величина типа Integer. Идентификатор окна, присоединенного к объекту типа "рамка".
Величина типа String с заголовком рамки.
Величина типа SmallInt. Число полигонов в объекте типа "область" или число ломаных компонент в объекте типа "полилиния".
Величина типа Integer. Число узлов в n-ом полигоне в объекте типа "область" или число узлов в N-ой ломаной линии, являющейся компонентой объекта типа "полилиния".
Замечание: для объектов типа "область" число узлов многоугольника будет на единицу больше, чем число вершин у многоугольника, потому что MapInfo считает первый узел дважды (один раз как первый узел и второй раз как последний узел). Так, функция ObjectInfo( ) возвращает 4 для треугольной монокомпонентной области.
Величина типа String. Текстовое содержимое объекта типа "текст". Если объект состоит из нескольких строк, то результат будет включать символ конца строки (Chr$(10)).
362 |
Справочник MapBasic |
|
|
Функция ObjectInfo( ) |
|
|
|
OBJ_INFO_TEXTSPACING |
Вещественное число 1, 1.5 или 2, определяющее |
|
|
интерлиньяж в текстовом объекте. |
|
OBJ_INFO_TEXTJUSTIFY |
Число типа SmallInt, определяющее выравнивание текста: |
|
|
0 |
– по левому краю, |
|
1 |
– по центру, |
|
2 |
– по правому краю. |
OBJ_INFO_TEXTARROW |
Число типа SmallInt, определяющее стиль указки в |
|
|
текстовом объекте: |
|
|
0 |
– нет указки, |
|
1 |
– просто линия, |
|
2 |
– стрелка. |
OBJ_INFO_FILLFRAME |
Величина типа Logical. “Да” (TRUE), если объект типа |
|
|
“рамка” показывает Карту и для него установлен режим |
|
|
“Заполнить Рамку Картой”. |
Заметим, что некоторые значения для параметра attribute могут адресоваться объектам определенного типа. Например, значение стиля символа может быть определено только для объекта типа "точка".
Если Вы используете код OBJ_INFO_TYPE как значение параметра attribute, то функция ObjectInfo( ) вернет код, соответствующий типу графического объекта. В следующей таблице приведены имена этих кодов из файла стандартных определений.
Код объекта |
|
Соответствующий тип объекта |
OBJ_ARC |
|
Дуга |
|
||
OBJ_ELLIPSE |
|
Эллипс или окружность |
OBJ_LINE |
|
Прямая линия |
OBJ_PLINE |
|
Полилиния |
OBJ_POINT |
|
Точечный объект |
OBJ_FRAME |
|
Рамка в окне Отчета |
OBJ_REGION |
|
Область |
OBJ_RECT |
|
Прямоугольник |
OBJ_ROUNDRECT |
|
Скругленный прямоугольник |
OBJ_TEXT |
|
Текстовый объект |
Функция ObjectInfo() также поддерживает следующие типы объектов:
Группа точек
Атрибут |
Возвращаемое значение |
Справочник MapBasic |
363 |
Функция ObjectInfo( )
1 |
Короткое целое, тип объекта. Возвращаемое |
OBJ_INFO_TYPE |
значение для группы точек 0 это 11 |
2 |
Стиль символа. |
OBJ_INFO_SYMBOL |
|
11 |
Логическое, возвращает TRUE если объект группа |
OBJ_INFO_NONEMPTY |
точек имеет узлы, FALSE 0 если объект пустой. |
Настройки атрибута |
Возвращаемое значение |
20 |
Целое, определяющее число узлов в группе точек. |
OBJ_INFO_NPNTS |
|
Коллекция |
|
(1) |
Короткое целое, определяющее тип объекта. |
|
Возвращаемое значение для коллекции 0 это 12. |
(8) |
Вазвращает значение соответстующее полигонам, |
OBJ_INFO_REGION |
входящим в коллекцию. Если коллекция не |
|
содержит полигонов, будет возвращен пустой |
|
полигон. Этот запрос действует только для объектов |
|
типа "коллекция". |
(9) |
Вазвращает значение соответстующее полилиниям, |
OBJ_INFO_PLINE |
входящим в коллекцию. Если коллекция не |
|
содержит полилиний, будет возвращен пустой |
|
полилиния. Этот запрос действует только для |
|
объектов типа "коллекция". |
10 |
Вазвращает значение соответстующее группам |
OBJ_INFO_MPOINT |
точек, входящим в коллекцию. Если коллекция не |
|
содержит групп точек, будет возвращен пустая |
|
группа точек. Этот запрос действует только для |
|
объектов типа "коллекция". |
11 |
Логическое, возвращает TRUE, если коллекция |
OBJ_INFO_NONEMPTY |
имеет узлы, FALSE 0 если объект пустой. |
Пример:
Узнаем, какой объект присоединен к первой записи таблицы CITY.
Include "MAPBASIC.DEF"
Dim counter, obj_type As Integer
Open Table "city"
Fetch First From city
'
'В этом месте программы выражение city.obj
'представляет графический объект, присоединенный
'к первой строке таблицы CITY.
'
obj_type = ObjectInfo(city.obj, OBJ_INFO_TYPE)
364 |
Справочник MapBasic |
Функция ObjectInfo( )
Do Case obj_type
Case OBJ_LINE
Note "Первый объект в таблице – прямая линия."
Case OBJ_PLINE
Note "Первый объект в таблице – полилиния,..." counter = ObjectInfo(city.obj, OBJ_INFO_NPNTS)
Note " ... которая имеет " + Str$(counter) + " узлов."
Case OBJ_REGION
Note "Первый объект в таблице – область,..." counter = ObjectInfo(city.obj, OBJ_INFO_NPOLYGONS)
Note ", которая состоит из " + Str$(counter) + " полигонов..." counter = ObjectInfo(city.obj, OBJ_INFO_NPOLYGONS+1)
Note "и первый полигон имеет " + Str$(counter) + " узлов"
End Case
Смотрите также:
Alter Object, ObjectGeography( ), Pen, Brush, Symbol, Font
Справочник MapBasic |
365 |
Функция ObjectLen( )
Функция ObjectLen( )
Назначение:
Вычисляет географическую длину объекта типа "линия" или "полилиния".
Синтаксис:
ObjectLen(expr, unit_name)
где
expr – выражение, результат которого есть величина типа Object,
unit_name – строковая величина, задающая единицы измерения расстояний (например, "km" – километры)
Величина, полученная в результате:
Вещественное число. Величина типа Float.
Описание:
Функция ObjectLen( ) возвращает длину объекта, представленного выражением expr. Только линия или полилиния могут иметь ненулевое значение длины. Для вычисления периметра областей, эллипсов, прямоугольников используйте функцию Perimeter( ).
Функция возвращает периметр в единицах, заданных вторым параметром. Полный список строковых значений, определяющих единицы расстояний, представлен в описании оператора Set Distance Units.
Пример:
Dim geogr_length As Float
Open Table "streets"
Fetch First From streets
geogr_length = ObjectLen(streets.obj, "km")
'geogr_length теперь содержит значение длины
'сегмента улицы в километрах
Смотрите также:
Distance( ), Perimeter( ), Set Distance Units
366 |
Справочник MapBasic |
Функция ObjectNodeX( )
Функция ObjectNodeX( )
Назначение:
Возвращает X-координату определенного узла определенного полигона в определенной области или X-координату узла полилинии.
Синтаксис:
ObjectNodeX(object, polygon_num, node_num)
где
object – выражение, результат которого есть величина типа Object; polygon_num – номер полигона или ломаной линии;
node_num – номер узла.
Величина, полученная в результате:
Вещественное число. Величина типа Float.
Описание:
Функция ObjectNodeX( ) возвращает координату по оси X узла полигона в области. Соответствующую координату по оси Y Вы можете получить при помощи функции ObjectNodeY( ). Параметр polygon_num должен иметь значение 1 или более. Он указывает, какой полигон (если опрашивается регион) или какая секция (если опрашивается полилиния) будет опрошен. Вызовите функцию ObjectInfo( ) для определения номера полигона в регионе или секции в полилинии. Функция ObjectNodeX() теперь поддерживает группы точек и возвращает координату X указанного узла в этом типе объекта.
Параметр node_num должен принимать целочисленные значения от 1 и более. Для задания номера узла в объекте Вы можете использовать в этом параметре вызов функции ObjectInfo( ). Координата, которую Вы получите в результате применения ObjectNodeX( ), будет выведена в системе координат, которая определена как текущая для MapBasic. Если система координат заранее не была выбрана (смотрите описание оператора Set CoordSys), то MapBasic использует систему широта/долгота.
Пример:
Здесь открывается таблица ROUTES. Если первый объект есть полилиния, то считываются координаты первого узла. На этом месте создается точечный объект.
Dim i_obj_type As SmallInt, x, y As Float,
new_pnt As Object Open Table "routes" Fetch First From routes
'В этом месте программы выражение city.obj
'представляет графический объект, присоединенный
'к первой строке таблицы ROUTES.
i_obj_type = ObjectInfo(routes.obj, OBJ_INFO_TYPE)
If i_obj_type = OBJ_PLINE Then |
|
|
|
||
' ... тогда объект полилиния... |
|
|
|
||
x = |
ObjectNodeX(routes.obj, |
1, 1) |
' |
чтение |
долготы |
y = |
ObjectNodeY(routes.obj, |
1, 1) |
' |
чтение |
широты |
Create Point Into Variable new_pnt (x, y)
Insert Into routes (obj) |
Values (new_pnt) |
End If |
|
Справочник MapBasic |
367 |
Функция ObjectNodeX( )
Смотрите также:
Alter Object, ObjectGeography( ), ObjectInfo( ), ObjectNodeY( ), Set CoordSys
368 |
Справочник MapBasic |
Функция ObjectNodeY( )
Функция ObjectNodeY( )
Назначение:
Возвращает Y-координату определенного узла определенного полигона в определенной области или возвращает Y-координату узла полилинии.
Синтаксис:
ObjectNodeY(object, polygon_num, node_num)
где
object – выражение, результат которого есть величина типа Object;
polygon_num 0 это положительное целое, определяющее, какой полигон или секция опрашиваются. Параметр игнорируется для групп точек (используется для полигонов и полилиний).
node_num это положительное целое, определяющее, какой узел считывается.
Величина, полученная в результате:
Вещественное число. Величина типа Float.
Описание:
Функция ObjectNodeY( ) возвращает координату по оси Y узла полигона в области. Соответствующую координату по оси X Вы можете получить при помощи функции ObjectNodeX( ). Правила использования этой функции такие же, как для ObjectNodeX( ).
Пример:
Смотрите в описании функции ObjectNodeX( ).
Смотрите также:
Alter Object, ObjectGeography( ), ObjectInfo( ), ObjectNodeX( ), Set CoordSys
Справочник MapBasic |
369 |