- •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( )
Функция LayerInfo( )
Функция LayerInfo( )
Мы добавили новый Layer_Info_Type, для корректной работы с WMS-таблицами.
Назначение
Возвращает информацию о слое в окне Карты.
Синтаксис
LayerInfo( map_window_id , layer_number , attribute )
map_window_id - идентификатор окна Карты
layer_number - число слоев в текущем окне Карты (например, 1 для верхнего слоя); для определения числа слоев в окне Карты, вызывайте MapperInfo( )
attribute - код, определяющий тип возвращаемой информации; смотрите таблицу в документации к MapBasic 7.5
Внимание: Для получения информации о значениях, об ограничениях, кодах атрибутов, для вывода описания и примеров, смотрите документацию MapBasic 7.5.
attribute код |
LayerInfo( ) Возвращаемое значение |
|
|
LAYER_INFO_TYPE |
Короткое целое, обозначающее такие типы файлов: |
|
|
|
LAYER_INFO_TYPE_NORMAL для обычного слоя; |
|
|
|
LAYER_INFO_TYPE_COSMETIC для |
|
Косметического слоя; |
|
|
|
LAYER_INFO_TYPE_IMAGE для слоя с растровым |
|
изображением; |
|
|
|
LAYER_INFO_TYPE_THEMATIC длятематического |
|
слоя; |
|
|
|
LAYER_INFO_TYPE_GRID для слоя поверхности; |
|
|
|
LAYER_INFO_TYPE_WMS для слоя из Web Map |
|
Service. |
|
|
672 |
MapInfo Professional 7.5 |
Приложение C: Новые и улучшенные операторы и функции MapBasic
Оператор Register
Внимание: Разделы, выделенные жирным шрифтом в секции синтаксиса, - это измененная часть оператора
Назначение
Создание таблицы MapInfo Professional из списка, базы данных, текстового файла, растра или изображения поверхности.
Синтаксис
Register Table source_file {Type “NATIVE” |
Type “DBF” [Charset char_set] |
Type “ASCII” [Delimiter delim_char] [Titles] [CharSet char_set] | Type “WKS” [Titles] [Range range_name] |
Type “WMS” [Coordsys coordsys_string [CharSet char_set] [Into destination_file]
Type “XLS” [Titles] [Range range_name] |
Type “Access” Table table_name [Password pwd] [CharSet char_set] Type ODBC Connection {Handle ConnectionNumber | ConnectionString}
Toolkit toolkitname Cache {On | OFF} Type "GRID" |
Type "RASTER" [ControlPoints (MapX1, MapY1) (RasterX1, RasterY1), (MapX2, MapY2) (RasterX2, RasterY2),
(MapX3, MapY3) (RasterX3, RasterY3) [, ...]] [CoordSys ... ] Type "SHAPEFILE" [Charset char_set] CoordSys...
[PersistentCache {On | Off}]
[Symbol...] [Linestyle Pen(...)] [Regionstyle Pen(...) Brush(...)] [Interactive] [Into destination_file]
source_file - строка, определяющая имя существующей базы данных, списка, текстового файла, растра или изображения поверхности. Если Вы регистрируете таблицу Access, этот аргумент должен идентифицировать полноценную базу данных Access.
char_set - имя символа из таблицы кодировки; смотрите отдельно обсуждение CharSet.
delim_char - определяет символ используемый как разделитель колонок. Если файл использует в качестве разделителя табулятор, задайте 9. Если файл использует разделитель запятую, задайте 44.
range_name - строка, идентифицирующая диапазон имен (например, “Таблица1”) или диапазон ячеек (например, диапазон Excel может быть задан так “Лист1!R1C1:R9C6” или
“Лист1!A1:F9”).
MapInfo Professional 7.5 Дополнения |
673 |
Оператор Register
table_name - строка, определяющая таблицу Access.
pwd - пароль уровня базы данных для этой базы, задается при включении защиты доступа к базе данных.
ConnectionNumber - целое, идентифицирующее существующее соединение с базой данных
ODBC.
ConnectionString - строка, используемая для соединения с сервером базы данных. Смотрите функцию Server Connect.
toolkitname - “ODBC” или “ORAINET.”
SQLQuery - SQL-запрос, используемый для определения таблицы MapInfo.
ControlPoints - дополнительный параметр, используемый если файла это Поверхность или растр. Он задает опорные (контрольные) точки, к ним нужны как минимум 3 пары координат точек карты и растра, которые используются для георегистрации изображения. Если такие точки заданы, то они заменяют любые контрольные точки, связанные с изображением или ассоциированным файлом World.
Предложение CoordSys является дополнительным, но может быть задано, если файла это Поверхность или растр. Если предложение CoordSys определено, то оно заменяет любую систему координат, ассоциированную с изображением. Это полезно при регистрации растрового изображения, имеющего ассоциированный файл World.
В случае шейп-файлов, предложение CoordSys является обязательным. Компилятор выдаст сообщение об ошибке, если это предложение будет пропущено.
PersistentCache On задается, если MAP и ID файлы генерируются во время открытия шейпфайлов и сохраняются на хард диске после закрытия таблицы. Если переключатель PersistentCache установлен на Off, то эти .MAP и .ID файлы будут удалены после закрытия таблицы и дудут генерироваться каждый раз при открытии таблицы.
Symbol (...) - предложение определяет стиль символа, используемого для точечных объектов, созданных из шейп-файла
Linestyle Pen (...) - предложение определяет стиль линии, используемый для линейных объектов, созданных из шейп-файла
Regionstyle Pen (...) Brush(...) - предложение определяет стиль границы и стиль заливки, используемый для объектов-полигонов, созданных из шейпфайлов
Ключевое слово Interactive является дополнительным, но может быть задано, если файла это Поверхность или растр. Если слово Interactive задано, то пользователю будут выведены сообщения-подсказки в случае пропуска контрольной точки или информации о проекции.
674 |
MapInfo Professional 7.5 |
Приложение C: Новые и улучшенные операторы и функции MapBasic
Если ключевое слово Interactive не задано, файл TAB будет создан автоматически, как будто пользователь в диалоге, появляющемся после выбора файла поверхности или растра в диалоге "Открыть таблицу" выбрал настройку "Показать".
destination_file - определяет имя, которое будет дано таблице MapInfo (TAB-файл). Эта строка может вскючать в себя путь к файлу; если путь не включен, файл будет создан в той же директории, где находится исходный файл.
Описание
Перед тем как использовать отличные от таблиц MapInfo файлы (например, файл dBASE), необходимо их зарегистрировать. Оператор Register Table сообщает MI Pro что надо проверить такой файл (например, filename.DBF) и создать соответствующий ему файл таблицы (filename.TAB). После того, как оператор Register Table создаст файл таблицы, можно получить доступ к файлу как к таблице MapInfo.
Оператор Register Table не копирует и не изменяет файл исходных данных. Вместо этого, он сканирует данные, определяет тип данных в колонках и создает отдельный файл таблицы. Таблица неоткрывается автоматически. Чтобы открытьтаблицу, используйте оператор Open
Table.
Внимание: Каждый файл с данными нуждается в регистрации только один раз. После того как операция Register Table создала соответственнный файл таблицы, в последующем сеансы MI Pro начинаются просто с команды Открыть для такой таблицы, а не с повтора процедуры Регистрировать.
Предложение Type определяет тип исходного файла. В нем есть ключевое слово Type, следующее за одной из следующих символьных констант: NATIVE, DBF, ASCII, WKS, XLS, Raster, Access или Grid. Другая информация необходима для обработки некоторых типов таблиц. Если регистрируется файл поверхности, то строка Сoordsys будет считана из файла поверхностии будет создана таблица MapInfo TAB. Если регистрируется растровыйфайл, то генерируемый TAB файл будет таким же как если пользователь выбрал бы “Показать” при открытии растрового изображения из диалога “Открыть таблицу”.
Если регистрируется файл поверхности, то строка Сoordsys будет считана из файла поверхности и будет создана таблица MapInfo .TAB. Если регистрируется растр, то генерируемый TAB-файл зависит от того будет ли информация о георегистрации в файле изображения или будет ли ассоциированный файл World.
MapInfo Professional 7.5 Дополнения |
675 |
Оператор Register
Предложение CharSet определяет тип кодировки шрифтов. Параметр char_set должен быть строкой, такой как “MacRoman” или “WindowsLatin1”. Если предложение CharSet пропущено, MI Pro использует кодировку по умолчанию, которая задана для данной платформы в данном сеансе. Более подробно описание предложения CharSet, смотрите в соответствующем разделе документации.
Предложение Delimiter следует за строкой, содержащей символ разделителя. По умолчанию разделитель - табулятор. Предложение Titles показывает, что строка перед табличными данными должна использоваться как заголовок таблицы. Предложение Range позволяет задаватьпоименнованныйдиапазон, данныеизкоторогобудутиспользоваться. Предложение Into используется для смены имени или местоположения создаваемого .TAB файла. По умолчанию имя таблицы будет совпадать с именем файла данных, и она будет храниться в той же директории. Таким образом, при считывании с устройства, открытого только для чтения (например, CD-ROM), надо будет сохранить TAB-файл на устройстве, которое доступно и для записи.
Регистрация таблиц Access
Когда Вы регистрируете таблицу Access, MI Pro ищет колонку счетчика с уникальным индексом. Если колонка счетчика уже существует, MI Pro регистрирует эту колонку в TABфайле. Колонка открыта только для чтения.
Если таблица Access не имеет колонки счетчика, MI Pro изменяет таблицу Access путем добавления колонки, называемой MAPINFO_ID с типом данных “счетчик”. В этом случае колонка счетчика не показывается в MapInfo.
Внимание: Не изменяйте колонку счетчика ни в каком случае. Это может выполняться автоматически самой MapInfo.
Типы данныхAccess транслируютсявближайшие типы данных MapInfo. Специальные типы данных Access, такие как OLE-объекты и бинарные поля, не возможны в MapInfo Professional.
Регистрация таблиц ODBC
Перед прямым доступом к таблице из удаленной базы данных, настоятельно рекомендуется, чтобы Вы сначала открыли таблицу карты (например, canada.tab) для таблицы базы данных. Если Вы не открыли таблицу карты, то целая таблица базы данных будет загружаться сразу целиком, что займет много времени.
676 |
MapInfo Professional 7.5 |
Приложение C: Новые и улучшенные операторы и функции MapBasic
Откройте таблицу карты и подберите ее масштаб так, чтобы в окно поместились все необходимые записи (объекты) из таблицы базы данных. Например, если Вы хотите загрузить строчки, относящиеся географически к Онтарио, подберите масштаб для отображения Онтарио в окне Карты. В результате, когда Вы открываете таблицу базы данных будут загружены из базы только те записи, которые попадают в описывающий прямоугольник окна Карты, в данном случае Онтарио.
Это список известных проблем, которые могут возникнуть при прямом доступе/issues при прямом доступе:
•Каждая таблица должна иметь одну уникальную ключевую колонку.
•FastEdit не поддерживается.
•Если в MS ACCESS ключ символьный, то не будут показаны записи, у которых значение ключа меньше, чем полная ширина колонки, если ключ имеет тип char(5) то значение 'aaaa' будет выглядеть как удаленная строка.
•Для прямого доступа, флажок “Только для чтения” в диалоге “Сохранить таблицу” будет неактивным.
•Изменения, сделанные другим пользователем, невидимы, пока браузер не будет прокручен или обновлен еще каким-нибудь способом. Вставки, сделанные другим пользователем не видны до тех пор, пока: 1). Поиск в МОП возвращает запись или 2). Команда PАCK выпущена в добавление к тому, что если сache находится на обновлении других пользователей, и не может появиться пока сache не потеряет возможности применяться смещением карты или масштабированием.
•Если клиент объединит (через меню SQL-запрос или через MapBasic) две или более таблиц SPATIALWARE, которые хранятся в различных системах координат, то возникнет проблема. Это - не самое эффективное действие, (лучше присоединять в операторе SQL, который определяет таблицу), но это проблема в настоящее время еще решается.
•Таблицы Oracle 7, которые индексированы по десятичному полю, большему чем 8 байтов, приведет к обрушению MI при редактировании.
•Если оператор Cache OFF расположен перед строкой соединения, то будет генерироваться сообщение об ошибке во время компиляции.
Регистрация шейп-файлов
Когда регистрируются шейп-файлы, они могут быть открыты в MapInfo Professional только для чтения. Поскольку сам шейп-файл не содержит информацию о проекции, то надо задать предложение CoordSys. Также возможно установить стили объектов, которые будут применяться, когда объекты шейп-файлов отображаются в MapInfo Professional. Информация о проекции и стилях хранится в виде метаданных в TAB-файле.
MapInfo Professional 7.5 Дополнения |
677 |
Оператор Register
Примеры
Пример 1
Register Table ”c:\mapinfo\data\rpt23.dbf”
Type ”DBF”
Into ”Report23”
Open Table ”c:\mapinfo\data\Report23”
Пример 2
Open Table ”C:\Data\CANADA\Canada.tab” Interactive Map From Canada
set map redraw off
Set Map Zoom 1000 Units ”mi” set map redraw on
Register Table ”odbc_cancaps” TYPE ODBC
TABLE ”Select * From informix.can_caps” CONNECTION
DSN=ius_adak;UID=informix;PWD=informix;DATABASE=sw;HOST=adak; SERVER=adak_tli;SERVICE=sqlexec;PROTOCOL=onsoctcp;”
Into ”D:\MI\odbc_cancaps.TAB”
Open Table ”D:\MI\odbc_cancaps.TAB” Interactive Map From odbc_cancaps
Пример 3
Регистрация полностью геопривязанного растрового изображения (растровый обработчик может возвратить по крайней мере три контрольных точки и проекцию)
Register Table "GeoRef.tif" type "raster" into "GeoRef.TAB"
Пример 4
Регистрациярастровогоизображения, имеющегоассоциированныйфайлWorld, содержащий информацию о контрольных точках, но не о проекции.
Register Table "RasterWithWorld.tif" type "raster" coordsys earth projection 9, 62, "m", -96, 23, 29.5, 45.5, 0, 0 into "RasterWithWorld.TAB"
678 |
MapInfo Professional 7.5 |
Приложение C: Новые и улучшенные операторы и функции MapBasic
Пример 5
Регистрация растрового изображения, не имеющего информации о контрольных точках или проекции.
Register Table "NoRegistration.BMP" type "raster" controlpoints (1000,2000) (1,2), (2000,3000) (2, 3), (5000,6000) (5,6) coordsys earth projection 9, 62, "m", -96, 23, 29.5, 45.5, 0, 0 into "NoRegistration.tab"
Пример 6
Следующий пример показывает регистрацию шейпфайла.
Register Table "C:\Shapefiles\CNTYLN.SHP" TYPE SHAPEFILE Charset "WindowsLatin1" CoordSys Earth Projection 1, 33 PersistentCache Off linestyle Pen (2,26,16711935) Into "C:\Temp\CNTYLN.TAB"
Open Table "C:\Temp\CNTYLN.TAB" Interactive Map From CNTYLN
Смотрите также
Open Table, Create Table
MapInfo Professional 7.5 Дополнения |
679 |