- •Оператор 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: Таблица кодов символов
- •Приложение В: Арифметические и географические операторы
- •ИНДЕКС
Оператор Create Menu Bar
Оператор Create Menu Bar
Назначение:
Перестраивает строку заголовков меню, используя стандартные и ранее определенные меню.
Синтаксис (вариант 1):
Create Menu Bar As
{ menu_name | ID menu_number }
[ , { menu_name | ID menu_number } ... ]
Синтаксис (вариант 2)
Create Menu Bar As Default
где
menu_name – заголовок стандартного для MapInfo меню или заголовок специально определенного меню, которое было ранее создано при помощи оператора Create Menu;
menu_number – номер стандартного меню (например, 1 для меню ФАЙЛ).
Описание:
Оператор Create Menu Bar говорит MapInfo, какие меню должны быть помещены в строку меню и в каком порядке. Если оператор задает не полный список стандартных меню, то результатом будет строка меню с сокращенным списком. Если в список меню включено одно или несколько специально определенных имен меню (они создаются при помощи оператора Create Menu), то результатом будет строка меню с расширенным списком.
Меню может задаваться именем (например, "Файл"), как стандартное меню, так и специально определенное. Каждое стандартное меню также имеет номер (идентификатор), который может использоваться при задании. Например, меню ФАЙЛ имеет идентификатор 1.
Список стандартных имен меню MapInfo приводится в описании оператора Alter Menu.
После того как система меню была изменена, Вы можете вернуть ее к стандартному виду оператором:
Create Menu Bar As Default
При этом удаляются все изменения в строке меню, включая и те, которые были созданы другими приложениями. Поэтому следует быть внимательным, употребляя этот оператор.
При формировании своей строки меню существует строгая рекомендация: первым определять меню ФАЙЛ, а вторым меню ПРАВКА. Эти два меню являются стандартным элементом интерфейса WinL dows, отсутствие этих меню может дезориентировать работу пользователя. Также желательно самым правым меню ставить меню СПРАВКА.
Пример 1:
Строка меню сокращается до четырех заголовков: "Файл", "Правка", "Анализ" и меню, соответствующее открытому окну ("Карта", "График" и т. п.).
Create Menu Bar As
"Файл", "Правка", "Анализ", "WinSpecific"
Пример 2:
В стандартной строке меню такие меню как КАРТА и СПИСОК не показываются, если окна Карты или Списка соответственно не являются активными. Следующий оператор помещает эти меню в строку
138 |
Справочник MapBasic |
Оператор Create Menu Bar
меню так, что они не зависят от того, есть ли на экране окна Карты и Списка. Но при этом, если пользователь откроет меню КАРТА, когда на экране нет активного окна Карты, то он увидит, что все команды этого меню недоступны (показаны серым шрифтом). Аналогично работает меню СПИСОК.
Create Menu Bar As
"Файл", "Правка", "Запрос", "Карта", "Список"
Пример 3:
В следующем фрагменте оператор Create Menu создает пользовательское меню ДАННЫЕ, которое можно будет использовать в операторе Create Menu Bar.
Declare Sub AddSub
Declare Sub EditSub
Declare Sub DelSub
Create Menu "Данные" As "Добавить" Calling addsub, "Правка" Calling editsub, "Удалить" Calling delsub
Create Menu Bar As
"Файл", "Правка", "Данные"
Смотрите также:
Alter Menu Bar, Create Menu, Menu Bar
Справочник MapBasic |
139 |
Оператор Create Object
Оператор Create Object
Назначение:
Создает один или несколько объектов типа "область", используя географические операции (Buffer,
Merge, Intersect и Union).
Синтаксис:
Create Object As { Buffer | Union | Intersect | Merge | ConvexHull } From fromtable
[ Into { Table intotable | Variable varname } ] [ Width bufferwidth [ Units unitname ] ]
[ Resolution smoothness ]
[ Data column = expression [, column = expression ... ] ] [ Group By column | RowID } ] ]
где
fromtable – имя открытой таблицы, содержащей один или более графических объектов; intotable – имя открытой таблицы, в которую помещается новый объект (или объекты); varname – имя объектной переменной;
bufferwidth – положительное число, радиус буферной зоны, в основном число положительное (если это число отрицательное и исходный объект замкнут, то результатом будет объект меньше исходного);
unitname – имя единицы измерения расстояния (например, "km" – километры);
smoothness – число сегментов для окружности, задающих гладкость границы буферной зоны, число от 2 до 100;
column – имя колонки в таблице.
Описание:
Оператор Create Object создает одну или более областей на базе уже существующих объектов, используя географические операции (Buffer, Merge, Intersect, Union и ConvexHull).
Предложение Into задает, куда будет помещен объект, полученный в результате. Предложение Into Table задает таблицу, в которой будет помещен результат, Into Variable – имя объектной переменной, которой будет присвоен результат после выполнения оператора. Если предложение Into опущено, то объект будет помещен в таблицу fromtable. Если Вы зададите в предложении Group By обобщение данных, то результат нужно помещать в таблицу, а не в переменную. Это необходимо потому, что переменная типа Object может иметь в качестве значения только один объект, тогда как в результате операции слияния может получиться несколько областей.
Следующее за словом As ключевое слово диктует тип географической операции. Со словом Buffer оператор создает буферную зону. Результат оператора со словом Intersect есть пересечение объектов.
Ключевое слово Merge задает создание области, представляющей объединение площадей объектов. Область, полученная в результате, будет содержать все полигоны (многоугольники) исходных объектов. Если исходные объекты перекрывают друг друга, операция объединения не исключает пересечение. То есть, если Вы объединяете таким образом две пересекающиеся области, каждая из которых состоит из одного полигона, то в результате Вы получите область, состоящую из двух пересекающихся полигонов.
140 |
Справочник MapBasic |
Оператор Create Object
Ключевое слово Union задает создание объединения объектов с исключением пересекающихся площадей. То есть, если Вы объединяете таким образом две пересекающиеся области, каждая из которых состоит из одного полигона, то в результате Вы получите область, состоящую из одного полигона.
Ключевые слова Merge и Union задают операции объединения, однако поведение их различно в случаях, когда один объект полностью содержится в другом объекте. MergeLобъединение вырезает из большего объекта меньший, оставляя дыру. При UnionLобъединении меньший объект поглощается большим.
Если задано предложение Group By, то MapInfo группирует все записи по одинаковым значениям и применяет операцию объединения к группе.
Если задано предложение Data, MapInfo обобщает данные. Например, Вы можете во время объединения данных обобщить данные функциями Sum(_) или Avg(_).
Оператор ConvexHull создает полигон представляющий выпуклый многоугольник, оконтуривающий набор точек. Это можно представить как резинку, обтягивающую совокупность точек. Этот многоугольник будет создан таким образом, чтобы все точки лежали на нем или внутри него. Многоугольник будет обязательно выпуклым, т.е. никакой внутренний угол не будет превышать 180 градусов.
Точками для создания вершин выпуклого многоугольника могут быть узлы регионов, полилиний или точек таблицы из предложения From. Если команда Create Object As ConvexHull не содержит предложения Group By, MapInfo создаст один выпуклый полигон. Если предложение Group By содержит имена колонок таблицы, MapInfo сгруппирует исходные объекты в соответствии с содержанием колонок и затем создаст выпуклые полигоны для каждой группы объектов. Если команда содержит предложение Group By RowID, MapInfo создаст один выпуклый полигон для каждого объекта в исходной таблице.
Создание буферной зоны
Если оператор Create Object создает буферную зону (Buffer), то нужно включить предложения Width и Resolution. Предложение Width определяет ширину буфера, а предложение Units задает единицы измерения. Если предложение Units не задано, то используются текущие единицы измерений в MapBasic – мили. Чтобы задать другие единицы, используйте оператор Set Distance Units.
Дополнительное подпредложение Type позволяет Вам указать тип вычисления расстояний, используемого при создании буфера. Если используется тип Spherical, то будут сделаны расчеты для данных в системе Широта/Долгота и будет использован алгоритм сферических вычислений ширины буферной зоны. Если используется декартовый тип алгоритмов Cartesian, то расчеты делаются в предположении того, что данные спроецированы на плоскость и ширина измеряется по декартовым алгоритмам вычисления расстояний. Если предложение Width не включает в себя подпредложение Type, то по умолчанию используется тип расчетов Spherical. Если данные в проекции Широта/Долгота, то будут использоваться сферические вычисления, независимо от установленного подпредложения Type. Если данные в плановых координатах, то будут использоваться декартовые вычисления независимо от того, какое подпредложение Type установлено.
Параметр smoothness определяет количество сегментов, из которых образуется окружность в
Справочник MapBasic |
141 |
Оператор Create Object
буферных областях. Стандартное значение параметра smoothness равно 12, то есть вместо окружности рисуется двенадцатиугольник. Увеличив значение параметра, Вы можете построить более близкий к окружности многоугольник, но в этом случае оператор Create Object будет дольше выполняться и результат его будет занимать большее место на диске.
Если оператор Create Object As Buffer не содержит предложения Group By, то MapInfo создает единую буферную область. Если же в предложении Group By задано имя колонки, то MapInfo группирует значение по этой колонке и затем создает буферные зоны для каждой группы. Предложение Group By RowID заставляет MapInfo создать отдельную буферную зону для каждого объекта.
Пример 1:
Здесь на базе обобщения областей садовых участков, которые находятся в таблице PARCELS, создаются области садовых товариществ, которые, в свою очередь, помещаются в таблицу ZONES. Новые объекты будут сопровождаться информацией о количестве садовых участков в данном товариществе и общей площади земли.
Open Table "PARCELS"
Open Table "ZONES"
Create Object As Merge
From PARCELS Into Table ZONES
Data участков=Count(*),общ_площадь=Sum(площадь_участка)
Group By номер_товарищества
Пример 2:
В следующем примере создается область, являющаяся буферной зоной шириной в четверть мили вокруг выбранных объектов. Буферный объект будет помещен в объектную переменную "corridor". Затем оператором Update или Insert объект можно поместить в таблицу.
Dim corridor As Object
Create Object As Buffer
From Selection
Into Variable corridor
Width 0.25 Units "mi"
Resolution 60
Смотрите также:
Buffer( ), Objects Combine, Objects Erase, Objects Intersect, ConvexHull( )
142 |
Справочник MapBasic |