Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB_REF_7.pdf
Скачиваний:
25
Добавлен:
13.02.2015
Размер:
2.96 Mб
Скачать

Функция 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]