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

Функция ConvexHull( )

Функция ConvexHull( )

Назначение:

Возвращает объектLрегион, который представляет собой полигонLконтур, созданный на основании узлов входного объекта. Он содержит минимальное количество точек (т.е. точки входного объекта лежат на границах или внутри полигона). Т.е. все внешние углы созданного полигонаLконтура больше, чем 180 градусов.

Синтаксис:

ConvexHull ( inputobject)

inputobject L оконтуриваемый объект

Возвращаемое значение:

Возвращает объектUрегион

Описание:

Функция ConvexHull() возвращает регион, представляющий контур, охватывающий точки входного объекта. Функция ConvexHull() создает один контур за раз. Чтобы создать контуры вокруг нескольких объектов, используйте оператор Create Object As ConvexHull.

Пример:

Следующий пример выбирает штат New York из таблицы штатов, затем создает полигон контур вокруг выборки.

Dim Resulting_object as object select * from States

where State_Name = »New York» Resulting_object = ConvexHull(selection.obj)

Insert Into States(obj) Values (Resulting_object)

Смотрите также:

Create Object

Справочник MapBasic

101

Предложение CoordSys

Предложение CoordSys

Назначение:

Задает систему координат.

Синтаксис (вариант 1):

CoordSys Earth

[ Projection type, datum, unitname

[, origin_longitude ] [, origin_latitude ]

[, standard_parallel_1 [, standard_parallel_2 ] ] [, azimuth ]

[, scale_factor ] [, false_easting ] [, false_northing ] [, range ] ]

[ Affine Units unitname, A, B C, D, E, F ] [ Bounds ( minx,miny) ( maxx,maxy) ]

Синтаксис (вариант 2):

CoordSys Nonearth

[ Affine Units unitname, A, B C, D, E, F ] Units unitname

Bounds (minx, miny) ( maxx, maxy)

Синтаксис (вариант 3):

CoordSys Layout Units paperunitname

Синтаксис (вариант 4):

CoordSys Table tablename

Синтаксис (вариант 5):

CoordSys Window window_id

где

type – положительное целое число, представляющее тип координатной системы; datum – положительное целое число, определяющее референсLэллипсоид;

unitname – единица измерения расстояний, строковая величина (например, "m" – метры, список единиц приведен в описании оператора Set Distance Units);

origin_longitude – долгота точки отсчета (нулевой точки) в градусах, вещественное число (тип Float); origin_latitude – широта точки отсчета (нулевой точки) в градусах, вещественное число (тип Float); standard_parallel_1 и standard_parallel_2 – широта в градусах, вещественное число (тип Float); azimuth – азимутальный угол в градусах, вещественное число (тип Float);

scale_factor – коэффициент искажения (масштабный коэффициент), вещественное число (тип Float);

range – вещественное число от 1 до 180 (тип Float), определяющее, какая часть Земли видна; minx – минимальная XLкоордината, вещественное число (тип Float);

miny – минимальная YLкоордината, вещественное число (тип Float);

102

Справочник MapBasic

Предложение CoordSys

maxx – максимальная XLкоордината, вещественное число (тип Float); maxy – максимальная YLкоордината, вещественное число (тип Float);

paperunitname – строковая величина, представляющая имя "бумажной" единицы (например, "in" – дюймы, список единиц приведен в описании оператора Set Paper Units);

tablename – имя открытой таблицы;

window_id – целочисленный идентификатор окна Карты или Отчета.

A задает масштабирование или растяженеи вдоль оси X.

B задает поворот или сдвиг вдоль оси X.

C задает смещение вдоль оси X.

D задает масштабирование или растяженеи вдоль оси Y.

E задает поворот или сдвиг вдоль оси Y.

F задает смещение вдоль оси Y.

Описание:

Предложение CoordSys не является отдельным оператором, а входит в состав тех операторов, в которых необходимо задавать координатную систему. С помощью этого предложения можно также задавать проекции Карты, которые используются с данной координатной системой. Это предложение, например, может использоваться в операторе Set Map для переопределения проекции, используемой в окне Карты.

Первый вариант синтаксиса предложения используется для Карт мира. Параметры предложения Projection задают проекцию Карты (если она есть), и должны использоваться в соответствии с координатной системой. Если это предложение опущено, то MapBasic использует координатную систему широта/долгота, представляющую Северную Америку 1927 года (NADL27).

Второй вариант синтаксиса предложения CoordSys используется для координатных систем планов, например, для поэтажного плана или другого CADLизображения.

Третий вариант синтаксиса предложения (CoordSys Layout) используется для задания координатной системы в окне Отчета. Программа MapBasic должна выполнить оператор Set Coord4 Sys Layout перед тем, как создавать объекты Отчета и работать с ними. Параметр unitname задает имя "бумажной" единицы, которая будет использоваться в окне. Например, следующий оператор Set CoordSys определяет дюймы, как единицы измерений в окне Отчета:

Set CoordSys Layout Units "in"

Четвертый вариант синтаксиса предложения (CoordSys Table) используется для задания координатной системы в таблице, данные которой сохраняются на диске.

Пятый вариант синтаксиса предложения (CoordSys Window) позволяет установить такую же координатную систему, как в окне window_id.

В операторах Set Map и Set Digitizer, использующих предложение CoordSys, MapBasic игнорирует предложение Bounds. Это предложение используется для планов (непроецированных Карт), когда предложение CoordSys входит в состав других операторов.

Предложение Bounds задает границы, в которых показывается Карта. Объект не может быть создан за пределами заданных этим предложением границ. Если задается координатная система Карты мира (Earth), то Вы должны опустить предложение Bounds, так как MapInfo пытается по умолчанию охватить всю Землю.

Справочник MapBasic

103

Предложение CoordSys

Замечание: В операторе Create Map можно увеличить точность координат на Карте, задав более узкий охват предложением Bounds.

Каждая картографическая проекция задается уравнением, имеющим свой индивидуальный набор параметров. Поэтому предложение CoordSys может иметь разный набор параметров в предложении Projection. Например, уравнение, задающее проекции Робинсона, использует в качестве параметров референсLэллипсоид (Datum), единицы измерения (Units) и начальную широту (Origin Latitude), а уравнение для модифицированной проекции Меркатора – референсLэллипсоид (Datum), единицы измерения (Units), начальную широту (Origin Latitude), начальную долготу (Origin Latitude), коэффициент искажения (Scale Factor), восточное смещение (False Easting) и северное смещение (False Northing).

Для дальнейшей информации о проекциях и координатных системах смотрите документацию MapL Info.

В каждом приложении MapBasic действует своя координатная система. При выполнении одним приложением оператора Set CoordSys, для другого приложения эти установки не имеют значения. Установка координатной системы действительна только для того приложения, в котором она была определена.

Пример1:

Оператор Set Map задает режим представления существующей Карты. Представленный в примере оператор Set Map задает режим показа Карты в проекции Робинсона:

Set Map CoordSys Earth Projection 12, 12, "m", 0.

Первое число 12 определяет проекцию Робинсона; второе число 12 определяет применение этой проекции ко всему Земному шару; параметр "m" задает метры, как единицы измерения; ноль задает нулевую долготу как начальную.

Пример 2:

Следующий оператор задает показ карты без проекций:

Set Map CoordSys Earth

Пример 3:

В следующем примере открывается таблица WORLD, и с помощью оператора Commit сохраняется под именем RWORLD в проекции Робинсона.

Open Table "world.tab" As World

Commit Table World As "RWORLD.TAB"

CoordSys Earth Projection 12, 12, "m", 0.

Пример 4:

Следующий оператор копирует проекцию из окна Карты, имеющего идентификатор "first_map_id", в окно с идентификатором "second_map_id".

Set Map

Window second_map_winid

CoordSys Window first_map_winid

Пример 5:

Следующий пример определяет систему координат DCS, которая получена из системы

104

Справочник MapBasic

Предложение CoordSys

координат UTM Zone 10, путем аффинного преобразования x1 = 1.57x – 0.21y + 84120.5

y1 = 0.19x + 2.81y – 20318.0

Здесь координаты (x1 , y1) представляют полученные координаты для DCS, а (x, y) исходные координаты UTM Zone 10. Если координаты DCS исчисллись в футах, то предложение CoordSys для DCS выглядело бы следующим образом:

CoordSys Earth

Projection 8, 74, »m», 123, 0, 0.9996, 500000, 0

Affine Units »ft», 1.57, 0.21, 84120.5, 0.19, 2.81, 20318.0

Смотрите также:

Commit Table, Set CoordSys, Set Map

Справочник MapBasic

105

Функция Cos( )

Функция Cos( )

Назначение:

Вычисляет косинус.

Синтаксис:

Cos(num_expr)

где

num_expr – численное выражение угла в радианах.

Величина, полученная в результате:

Вещественное число. Величина типа Float.

Описание:

Функция Cos(_) вычисляет косинус числа, полученного в результате вычисления выражения num_expr. Угол должен задаваться в радианах. Диапазон возвращаемого значения находится между единицей и минус единицей включительно.

Для перевода градусов в радианы число необходимо умножить на число DEG_2_RAD. Для обратного конвертирования используется коэффициент RAD_2_DEG. Чтобы Ваша программа могла использовать эти коэффициенты конвертирования, она должна содержать оператор Include "MAPBASIC.DEF":

Пример:

Include "MAPBASIC.DEF"

Dim x, y As Float

x = 60 * DEG_2_RAD y = Cos(x)

'y равен 0.5, поскольку

'косинус от 60 градусов равен 0.5

Смотрите также:

Acos(_), Asin(_), Atn(_), Sin(_), Tan(_)

106

Справочник MapBasic

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