- •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( )
Оператор Objects Snap
Оператор Objects Snap
Назначение
Выполняет коррекцию объектов из данной таблицы и осуществляет различные топологические операции над объектами, включая совмещение узлов разных объектов, прилегающих друг к другу и генерализацию/разреживание узлов. Таблица может быть и Selection. Все объекты, подвергающиеся действию оператора, должны быть или все линейными (то есть, полилинии или дуги) или все замкнутые (то есть, полигоны, прямоугольники, скругленные прямоугольники или эллипсы). Смешанные линейные и замкнутые объекты не могут обрабатываться этим оператором, будет выдано сообщение об ошибке.
Синтаксис
Objects Snap From tablename
[Tolerance [Node node_distance] [Vector vector_distance] [Units unit_string] ] [Thin [Bend bend_distance] [Distance spacing_distance] [Units unit_string] ] [Cull Area cull_area [Units unit_string] ] ]
Описание
Объекты из исходной таблицы tablename проверяются на предмет различных проблем и несоответствий, таких, как самопересечения. Самопересекающиеся полигоны в форме"восьмерки" будут превращаться в два полигона, соприкасающиеся в одной точке. Полигоны, содержащие острые выступы, будут обработаны так, что эти шипы будут удалены. Результирующий, исправленный объект помещается вместо исходного объекта. Если существуют наложения полигонов друг на друга, то такие наложения будут удалены. Удаление наложений состоит в удалении наложенной части. Эта часть 0 "избыточный полигон" 0 образует с одним из двух исходных объектов регион. Такой регион составлен из "избыточного полигона" и непересекающейся части исходного полигона.
Значения Node и Vector Tolerances предназначены для совмещения узлов из разных близлежащих объектов и удаляют мелкие пустоты и мелкие пустоты между двумя объектами. Субпредложение Units предложения Tolerances позволяет задать единицы измерения расстояния (например, "km" для километров), применяемых к значениям Node и Vector. Если субпредложение Units отсутствует, то значения Node и Vector будут интерпретироваться в текущих значениях измерения расстояния MapBasic. По умолчанию MapBasic использует мили; для изменения единиц измерения смотрите оператор Set Distance Units.
Node 0 это радиус вокруг конечных узлов полилиний. Если узлы из других объектов попадают в этот радиус, то один или два узла перемещаются так, что попадают в одну точку (т.е. они совмещаются). Vector 0 это радиус, используемый для промежуточных точек полилиний. Его назначение тоже, что и у радиуса Node, кроме того, что он используется только для промежуточных точек полилиний. Обратите внимание, что для полигонов не определено понятие конечных точек (значение Node не используется) ввиду их замкнутости. Для них используется только величина Vector, которая применяется ко всем узлам объекта. Для полилиний значение Node должно быть больше или равно значению Vector.
Значения Bend и Distance могут использоваться для удобства операций разреживания узлов и обобщения контуров. Они уменьшают число узлов, используемых в объекте, сохраняя
Справочник MapBasic |
383 |
Оператор Objects Snap
основные черты формы объекта. Субпредложение Units предложения Thin позволяет указать
имя единицы измерения расстояния (например, "km" для километров) в которых измеряенся
значение Bend и Distance. Если субпредложение Units отсутствует, то значения Bend и
Distance будут интерпретироваться в текущих единицах измерения MapBasic.
Значение Bend используется для управления коллинеарным отклонением группы из 3
последовательных узлов. Эти 3 узла связываются в треугольник. Измеряется перпендикуляр,
опущенный из средней точки на длинную сторону треугольника. Если это расстояние меньше
значения Bend, то эти три узла рассматриваются как коллинеарные и второй (средний) узел
удаляется из объекта.
Расстояние Distance используется для удаления узлов из одного объекта, если узлы
расположены слишком близко друг к другу. Измеряется расстояние между двумя соседними
точками объекта. Если это расстояние меньше, чем Distance, то один из двух узлов будет
удален.
Значение Cull Area используется для удаления избыточных полигонов, которые меньше
некоторого заданного этой величиной значения. Субпредложение Units из предложения Cull
позволяет настроить единицы измерения площади (например, "кв км" для квадратных
километров) применяемые в значении Area. Если субпредложение Units отсутствует, то
значение Area будет интерпретироваться в текущих единицах измерения площади MapBasic.
По умолчанию MapBasic использует квадратные мили в качестве единиц измерения площади;
для изменения этих единиц см. оператор Set Area Units.
Внимание: Для всех расстояний и площадей, упомянутых выше, всегда используется тип измерений на плоскости. Систему координат и проекцию всегда надо учитывать. Вычисления расстояний и площадей в Долготе/Широте на плоскости осуществляются не с математической точностью. Убедитесь, что Вы работаете в подходящей системе координат (декартовых) перед работой с этим оператором.
Пример
Open Table "STATES.TAB" Interactive Map From STATES
Set Map Layer 1 Editable On select * from STATES
Objects Snap From Selection Tolerance Node 3 Vector 3 Units "mi" Thin Bend 0.5 Distance 1 Units "mi" Cull Area 10 Units "sq mi"
Смотрите также
Оператор Create Object
Оператор Overlap
Оператор Objects Clean
384 |
Справочник MapBasic |
Оператор Objects Split
Оператор Objects Split
Назначение:
Разделяет изменяемые объекты на части, используя форму выбранных объектов как "ластик". Оператор соответствует команде ОБ ЕКТЫ > РАЗРЕЗАТЬ.
Синтаксис:
Objects Split Into Target
[ Data column_name = expression ]
[ , column_name = expression ... ] ]
где
column_name – имя колонки в таблице.
Описание:
Оператор Objects Split разрезает каждый изменяемый объект на несколько. Оператор Objects Split соответствует команде MapInfo ОБ ЕКТЫ > РАЗРЕЗАТЬ. Если Вы в MapInfo выполните команду и при этом будет открыто окно MapBasic, то в протоколе выполненных действий будет использован оператор Objects Split. Описание выполняющейся операции смотрите в описании команды в
Справочнике MapInfo.
Перед выполнением оператора Objects Split, должен быть выбран изменяемый объект (или объекты) и один или более замкнутых объектов (типа "область ", "прямоугольник", "скругленный прямоугольник" или "эллипс"), играющих роль "ластика". Изменяемый объект может быть назначен командой в MapInfo ОБ ЕКТЫ > ВЫБРАТЬ ИЗМЕНЯЕМЫЙ ОБ ЕКТ или оператором Set Target из прикладной программы.
Предложение Data управляет обобщением данных. За ключевым словом Data должен следовать список определений через запятую. Каждое определение является выражением, по которому будет изменено значение из определенной колонки в записи изменяемого объекта. Вычисления или изменения должны производиться в соответствии с типом колонки (численным, строковым и т. п.) Следующая таблица приводит некоторые варианты определений для колонки:
Выражение |
|
Эффект |
col_name = col_name |
|
Содержимое колонки не меняется. Каждый объект, |
|
||
|
|
полученный в результате, в своей записи имеет то |
|
|
же значение, что и объект, из которого он был |
|
|
получен. |
col_name = value |
|
MapBasic помещает значение value в поле записи |
|
|
объекта. Если тип колонки символьный, то value |
|
|
должно быть строкой. Если тип колонки |
|
|
численный, то value должно быть числом. |
col_name = Proportion(col_name)
Используется только для численных колонок. MapBasic пропорционально размерам объектов разделяет значение в колонке col_name между записями с объектами, полученными в результате.
Список Data может состоять из определений для всех колонок таблицы. Если в списке определены не все колонки, то MapBasic разместит пустые значения в неописанные поля новой записи.
Справочник MapBasic |
385 |
Оператор Objects Split
Если в операторе не используется предложение Data, то MapBasic заполнит все поля записи объектов нулевыми и пустыми значениями.
Примеры:
В результате следующего оператора Objects Split, который не использует предложение Data, все записи, к которым присоединены объекты, получают пустые или нулевые значения.
Objects Split Into Target
Следующий оператор Objects Split имеет предложение Data, которое задает выражения для трех колонок ("State_Name", "Pop_1990" и "Med_Inc_80"). Первая часть предложения Data присваивает строку "подразделение" колонке "State_Name"; то есть строка "подразделение" будет помещена в колонку "State_Name" для каждого объекта, являющегося результатом разрезания. Далее в предложении Data определяется, что население из колонки "Pop_1990" пропорционально разделяется между результатами разрезания, а значение "Med_Inc_80" сохраняется для всех объектов.
Objects Split Into Target
Data
State_Name = "подразделение",
Pop_1990 = Proportion( Pop_1990 ),
Med_Inc_80 = Med_Inc_80
386 |
Справочник MapBasic |