- •Оператор Add Column
- •Оператор Add Map
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter Cartographic Frame
- •Оператор Alter Control
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Bar
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор AutoLabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Функция ButtonPadInfo( )
- •Оператор Call
- •Функция•CartesianArea( )
- •Функция CartesianBuffer( )
- •Функция CartesianDistance ( )
- •Функция CartesianObjectLen( )
- •Функция CartesianPerimeter( )
- •Функция Centroid( )
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Функция CommandInfo()
- •Оператор Commit Table
- •Оператор Continue
- •Предложения Control Button / OKButton / CancelButton
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложения Control ListBox / MultiListBox
- •Предложение Control PopupMenu
- •Предложение Control RadioGroup
- •Предложение Control StaticText
- •Функция ConvexHull( )
- •Предложение CoordSys
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Функция CreateCircle( )
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create Object
- •Оператор Create Pline
- •Оператор Create Point
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Функция CreateText( )
- •Функция DateWindow( )
- •Оператор 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
- •Оператор For...Next
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Global
- •Оператор Goto
- •Оператор Graph
- •Оператор If...Then
- •Оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция Int( )
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Функция LabelFindByID( )
- •Функция LabelFindNext( )
- •Функция Labelinfo( )
- •Оператор Layout
- •Функция LegendFrameInfo( )
- •Функция LegendInfo( )
- •Функция LegendStyleInfo( )
- •Оператор Line Input
- •Процедура Main
- •Функция MakeCustomSymbol( )
- •Функция MakeFontSymbol( )
- •Оператор Map
- •Функция Map3dInfo( )
- •Оператор Menu Bar
- •Функция MenuitemInfoByID( )
- •Оператор Metadata
- •Оператор Note
- •Функция NumAllWindows( )
- •Оператор Objects Check
- •Оператор Objects Combine
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Report
- •Оператор Open Table
- •Оператор Open Window
- •Оператор Pack Table
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор Print #
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Remove Cartographic Frame
- •Оператор Remove Map
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Window
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Функция Server_ColumnInfo( )
- •Оператор Server Commit
- •Функция Server_Connect( )
- •Оператор Server Create Map
- •Оператор Server Disconnect
- •Функция Server_DriverInfo( )
- •Функция Server_EOT( )
- •Функция Server_Execute( )
- •Оператор Server Fetch
- •Функция Server_GetodbcHConn( )
- •Функция Server_GetodbcHStmt( )
- •Оператор Server Link Table
- •Функция Server_NumCols( )
- •Функция Server_NumDrivers( )
- •Оператор 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 ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Style
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Функция StyleAttr( )
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Функция UnitAbbr$( )
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Write #
- •Приложение A: Таблица кодов символов
- •Приложение В: Арифметические и географические операторы
- •ИНДЕКС
Оператор Note
Оператор Note
Назначение:
Показывает сообщение в простом диалоговом окне.
Синтаксис:
Note message
где
message – выражение, результат которого будет показан в окне.
Описание:
Оператор Note создает простое диалоговое окно сообщений, сопровождающееся одной кнопкой "ОК".
Параметр message может быть выражением, не обязательно строковым. Если в результате вычисления выражения message получается величина объектного типа (Object), MapBasic автоматически преобразует его в строку (так как это делает функция Str$( )). Это строковое представление и будет выведено в диалоговом окне сообщений. Если message – строка, то максимальная длина должна быть не более 300 символов и может занимать только 6 строк.
Пример:
Note "Всего использовано записей: " + Str$( i_count )
Смотрите также:
Ask( ), Dialog, Print
332 |
Справочник MapBasic |
Функция NumAllWindows( )
Функция NumAllWindows( )
Назначение:
Возвращает количество окон, открытых MapInfo, включая специальные окна, такие как инструментальные панели и окно Информации.
Синтаксис:
NumAllWindows( )
Величина, полученная в результате:
Короткое целое число. Величина типа SmallInt.
Описание:
Функция NumAllWindows( ) определяет, сколько всего открыто окон программой MapInfo.
Чтобы определить количество открытых “документальных” окон MapInfo (Карт, Списков, Графиков и Отчетов), используйте функцию NumWindows( ).
Смотрите также:
NumWindows( ), WindowID( )
Справочник MapBasic |
333 |
Функция 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( )
334 |
Справочник 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 |
335 |
Функция 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( )
336 |
Справочник MapBasic |
Функция NumWindows( )
Функция NumWindows( )
Назначение:
Возвращает количество открытых на данный момент окон (Карт, Списков, Графиков и Отчетов).
Синтаксис:
NumWindows( )
Величина, полученная в результате:
Короткое целое число. Величина типа SmallInt.
Описание:
Функция NumWindows( ) возвращает число открытых на данный момент окон Карт, Списков, Графиков и Отчетов. Результат функции не зависит от того, в каком состоянии находится окно: свернуто в иконку или нет.
Чтобы определить общее количество выведенных на экран окон, включая вспомогательные (такие как окно Легенды, Информации), используется функция NumAllWindows( ).
Пример:
Dim num_open_wins As SmallInt
num_open_wins = NumWindows( )
Смотрите также:
NumAllWindows( ), WindowID( )
Справочник MapBasic |
337 |
Функция ObjectGeography( )
Функция ObjectGeography( )
Назначение:
Возвращает информацию о графическом объекте, определяющую его расположение.
Синтаксис:
ObjectGeography(object, attribute)
где
object – объектное выражение;
attribute – целочисленный код, определяющий результат функции.
Величина, полученная в результате:
Вещественное число. Величина типа Float.
Описание:
Функция ObjectGeography( ) возвращает информацию об определенных координатах и угловых величинах географических объектов. Координатами могут быть координаты точечного объекта или начальной точки прямой линии, минимальные или максимальные координаты объектов. А угловыми величинами – начальный и конечный углы дуги, угол поворота текста.
Параметр attribute должен принимать значения целочисленного кода, управляющего типом возвращаемой функцией информации. В следующей таблице в первой колонке приводятся имена кодов для функции ObjectGeography( ), которые установлены в файле стандартных определений MapBasic MAPBASIC.DEF.
Заметим, что некоторые значения для параметра attribute могут адресоваться объектам определенного типа. Например, начальный угол может быть считан только у объекта типа "дуга".
338 |
Справочник MapBasic |
Функция ObjectGeography( )
Значения attribute |
Результат функции (Величина типа Float) |
|
|
OBJ_GEO_MINX |
Минимальная XLкоордината минимального |
|
прямоугольного покрытия объекта, если его тип не |
|
“линия”. Иначе возвратится значение, равное |
|
OBJ_GEO_LINEBEGX. |
OBJ_GEO_MINY
OBJ_GEO_MAXX
OBJ_GEO_MAXY
Минимальная YLкоордината минимального прямоугольного покрытия объекта, если его тип не “линия”. Иначе возвратится значение, равное OBJ_GEO_LINEBEGY.
Максимальная XLкоордината объекта или его минимального прямоугольного покрытия. Код не применим для объекта типа "точка". Для линий возвращается значение, равное OBJ_GEO_LINEENDX.
Максимальная YLкоордината объекта или его минимального прямоугольного покрытия. Код не применим для объекта типа "точка". Для линий возвращается значение, равное 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
Начальный угол дуги. Только для объекта типа "дуга".
Конечный угол дуги. Только для объекта типа "дуга".
XLкоордината начальной точки прямой линии. Только для объекта типа "линия".
YLкоордината начальной точки прямой линии. Только для объекта типа "линия".
XLкоордината конечной точки прямой линии. Только для объекта типа "линия".
YLкоордината конечной точки прямой линии. Только для объекта типа "линия".
XLкоордината точечного объекта.
YLкоордината точечного объекта.
Диаметр окружности, которую можно вписать в закругление угла объекта типа "скругленный прямоугольник". Результат выдается в текущих координатных единицах (например, в градусах).
XLкоордината конца строки в текстовом объекте.
YLкоордината конца строки в текстовом объекте.
Угол поворота текстового объекта.
Справочник MapBasic |
339 |
Функция ObjectGeography( )
Пример:
Здесь наряду с функцией 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( )
340 |
Справочник 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 "MAPBA4 SIC.DEF".
Справочник MapBasic |
341 |
Функция 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. Число узлов в nLом полигоне в объекте типа "область" или число узлов в NLой ломаной линии, являющейся компонентой объекта типа "полилиния".
Замечание: для объектов типа "область" число узлов многоугольника будет на единицу больше, чем число вершин у многоугольника, потому что MapInfo считает первый узел дважды (один раз как первый узел и второй раз как последний узел). Так, функция ObjectInfo( ) возвращает 4 для треугольной монокомпонентной области.
Величина типа String. Текстовое содержимое объекта типа "текст". Если объект состоит из нескольких строк, то результат будет включать символ конца строки (Chr$(10)).
342 |
Справочник 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 |
|
Текстовый объект |
Пример:
Узнаем, какой объект присоединен к первой записи таблицы CITY.
Include "MAPBASIC.DEF"
Dim counter, obj_type As Integer
Справочник MapBasic |
343 |
Функция ObjectInfo( )
Open Table "city"
Fetch First From city
'
'В этом месте программы выражение city.obj
'представляет графический объект, присоединенный
'к первой строке таблицы CITY.
'
obj_type = ObjectInfo(city.obj, OBJ_INFO_TYPE)
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
344 |
Справочник MapBasic |
Функция 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
Справочник MapBasic |
345 |
Функция ObjectNodeX( )
Функция ObjectNodeX( )
Назначение:
Возвращает XLкоординату определенного узла определенного полигона в определенной области или XLкоординату узла полилинии.
Синтаксис:
ObjectNodeX(object, polygon_num, node_num)
где
object – выражение, результат которого есть величина типа Object; polygon_num – номер полигона или ломаной линии;
node_num – номер узла.
Величина, полученная в результате:
Вещественное число. Величина типа Float.
Описание:
Функция ObjectNodeX( ) возвращает координату по оси X узла полигона в области. Соответствующую координату по оси Y Вы можете получить при помощи функции ObjectNodeY( ). Параметр polygon_num принимает значения от одного и более, задавая порядковый номер полигона в области или ломаной линии, являющийся компонентой полилинии. Для задания номера полигона в области Вы можете использовать в этом параметре вызов функции ObjectInfo( ).
Параметр 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
Смотрите также:
Alter Object, ObjectGeography( ), ObjectInfo( ), ObjectNodeY( ), Set CoordSys
346 |
Справочник MapBasic |
Функция ObjectNodeY( )
Функция ObjectNodeY( )
Назначение:
Возвращает YLкоординату определенного узла определенного полигона в определенной области или возвращает YLкоординату узла полилинии.
Синтаксис:
ObjectNodeY(object, polygon_num, node_num)
где
object – выражение, результат которого есть величина типа Object; polygon_num – номер полигона или ломаной линии;
node_num – номер узла.
Величина, полученная в результате:
Вещественное число. Величина типа Float.
Описание:
Функция ObjectNodeY( ) возвращает координату по оси Y узла полигона в области. Соответствующую координату по оси X Вы можете получить при помощи функции ObjectNodeX( ). Правила использования этой функции такие же, как для ObjectNodeX( ).
Пример:
Смотрите в описании функции ObjectNodeX( ).
Смотрите также:
Alter Object, ObjectGeography( ), ObjectInfo( ), ObjectNodeX( ), Set CoordSys
Справочник MapBasic |
347 |