Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MI6UGRU

.pdf
Скачиваний:
16
Добавлен:
13.02.2015
Размер:
14.71 Mб
Скачать

 

 

Приложение B: Техника геокодирования

 

 

 

 

 

 

40 (+/-)

Диапазон не задан, но подошел к минимальному диапазону

 

 

 

 

 

 

50 (-)

Улицы не пересекаются

 

 

 

 

 

 

70

Пользователь выбрал адрес из списка

 

 

 

 

 

 

Вторая цифра кода (десятки) показывает, как MapInfo обработала номер дома.

 

Уточняющие области

100 (+/-)

Диапазон найден в единственной области, которая отличается

 

от заданной

 

 

200 (-)

Диапазон найден в нескольких областях, причем ни одна не

 

совпадает с заданной

 

 

300 (+/-)

Область не задана, но диапазон содержится в единственной

 

области

 

 

400 (-)

Область не задана и диапазон найден в нескольких областях

 

 

500

Точный адрес найден более одного раза в заданной области

 

 

600

Пользователь выбрал значение из списка

 

 

1000000

Пользователь ввел новое значение

(+/-)

 

 

 

Третья цифра кода (сотни) показывает, как MapInfo обработала область.

Получив коды результатов, Вы можете проанализировать с помощью команды SQL- ЗАПРОС, сколько записей не было обработано по каждому значению кода отдельно:

Выбрать колонки:

Result_Code, count(*)

из таблиц:

SomeData

Сгруппировать по:

Result_Code

 

 

Будет получена таблица запроса, каждому значению кода в которой будет соответствовать отдельная строка: в ней будет указано значение кода и число записей, получивших этот код. Командой ВЫБРАТЬ èëè SQL-ЗАПРОС можно выбрать все записи с определенным кодом. Эти выборки затем можно просматривать, чтобы решить, каким способом геокодировать каждый класс необработанных записей.

Примеры кодов

675 Пользователь выбрал название улицы, диапазон и область.

101 Найдено точное совпадение в единственной области, отличающейся от заданной.

637

Приложение C: Преобразование файлов MI

DOS â MI äëÿ Windows

MAP2MIF и BDY2MIF – это вспомогательные программы, преобразующие файлы MapInfo для DOS в формат MapInfo для Windows. MAP2MIF и BDY2MIF преобразуют файл карт (Mapfiles) и файлы границ (Boundary) программы MapInfo для DOS в файлы формата MIF, которые можно импортировать в MapInfo для Windows.

Преобразование файлов MapInfo из DOS в Windows состоит из двух этапов:

преобразование файлов типа Mapfile программой MAP2MIF;

преобразование файлов типа Boundary программой BDY2MIF.

Обе эти вспомогательные программы переводят файлы в формат обмена данных MapInfo (MIF).

Хотя цвета преобразуются корректно, бывают случаи, когда в другой системе лучше использовать другие цвета. Например, стандартный фон в MapInfo для DOS – черный, а в MapInfo для Windows – белый.

MAP2MIF

MAP2MIF преобразует файл карт (Mapfile) для DOS в формат MIF. Все сегменты в Mapfile преобразуются в объекты типа LINE в файле формата MIF.

Таблица в файле формата MIF содержит шесть полей: Street, FromLeft, FromRight, ToLeft, ToRight и Type (или Primary).

Street char(40) – название улицы. Тип и направление улицы берутся из MapInfo.

FromLeft smallint – первый адрес по левой стороне в начале сегмента.

FromRight smallint – первый адрес по правой стороне в начале сегмента.

ToLeft smallint – первый адрес по левой стороне в конце сегмента.

ToRight smallint – первый адрес по правой стороне в конце сегмента.

Type smallint – тип улицы, то есть код улицы из Mapfile.

Поле Street содержит уникальные значения и индексируется, чтобы по нему можно было вести сравнение адресов.

Стандартными являются следующие типы линий и цвета улиц, железных дорог, рек и границ:

Улицы (0): черный;

Железные дороги (1): красный пунктирный;

Реки (2): синий;

Границы (3): зеленый.

Чтобы задать другие значения, используйте режим /MD. Тип линий и цвета улиц с отрицательным типом преобразуются с помощью файла индивидуальных настроек (personality) и таблицы цветов.

Приложение C: Преобразование файлов MI DOS в MI для Windows

BDY2MIF

BDY2MIF преобразует файл границ (Boundary) MapInfo для DOS в формат MIF. Замкнутые границы переводятся в объекты типа REGION, незамкнутые – в один или несколько объектов PLINE, а границам, не имеющим ни одного сегмента, не сопоставляется никаких графических объектов. Для ускорения преобразования можно применить режим /NC, но только если Вы уверены, что все границы замкнуты.

Таблица в MIF-файле содержит два поля: Name char(?) и Id integer.

Name char – название границы. Стандартное название в этом поле – "Name". Чтобы задать свое имя, используйте режим /N. Например, если файл границ содержит зоны действия почтовых индексов, можно назвать границы "ZIP".

Длина этого поля – это максимальная длина названий границ в файле границ, округленная до ближайшего числа, кратного пяти. Чтобы задать другую длину поля, используйте режим /NW.

Id integer – код границы.

Поле названий индексируется. Тип границ и штриховок преобразуется с учетом файла индивидуальных настроек (personality) и таблицы цветов.

Как пользоваться MAP2MIF и BDY2MIF

Командные строки имеют следующий вид:

MAP2MIF mapfile [MIF/MID-file]

[/A:файл_сокращений]

[/M:множитель]

[/P:файл_инд_настроек]

[/MD:шоссе,железные_дороги,реки,границы]

[/RGB:таблица_цветов]

[/NBW]

BDY2MIF boundary-file [MIF/MID-file] [/M:множитель]

[/NC]

[/N:название] [/NW:длина_названия] [/P:файл_инд_настроек] [/RGB:таблица_цветов]

640

Приложение C: Преобразование файлов MI DOS в MI для Windows

[/NBW]

Режимы MAP2MIF и BDY2MIF

/M:множитель

Задает множитель, который надо применять к координатам из MapInfo для DOS. Стандартный множитель для всех данных MapInfo – 1000000. Указывая другой множитель в этом режиме, Вы можете создавать данные иного вида.

/P:файл_инд_настроек

Задает файл индивидуальных настроек, который будет использоваться для преобразования кодов цветов, линий и штриховок. Стандартный файл индивидуальных настроек – MAPINFO.PER.

Если в MapInfo для DOS использовался другой файл индивидуальных настроек, то его следует указать и в командной строке MAP2MIF и BDY2MIF.

/RGB:таблица_цветов

Задает таблицу цветов, которая будет использоваться для перевода кодов цветов в файле индивидуальных настроек в комбинации оттенков красного/зеленого/синего в формате MIF. Формат таблицы цветов одинаков для MAP2MIF и BDY2MIF. Стандартная таблица цветов (для MIF) – 2MIF.RGB – отличается от стандартной таблицы цветов для MapInfo для DOS COLORS.RGB. Отношение красного/зеленого/синего, используемое в MapInfo для DOS, не дает точно таких же цветов в графических системах.

Если в MapInfo для DOS Вы использовали другую таблицу цветов, то может понадобиться создание измененной версии для корректного преобразования цветов.

/NBW

Сообщает MAP2MIF и BDY2MIF, что не надо переключаться с черного цвета на белый. Этот режим следует применять, если Вы использовали нестандартный файл индивидуальных настроек, в котором установили белый цвет фона.

Вот аргументы программы MAP2MIF:

/A:файл_сокращений

Задает файл сокращений, в котором вводятся сокращенные названия типов и направления улиц. Используется, если Вы работали с нестандартным файлом сокращений в MapInfo для DOS.

/MD:

Задает индивидуальные коды для улиц, железных дорог, рек и границ соответственно (Номера строк в файле индивидуальных настроек, то есть коды улиц 0-3). Между

641

Приложение C: Преобразование файлов MI DOS в MI для Windows

четырьмя кодами не допускается наличие пробелов, они разделяются запятыми. Например:

/MD:5,37,13,3

Это значит, что MAP2MIF должна использовать код 5 для улиц, 37 – для железных дорог, 13 – для рек и 3 – для границ.

Далее приводятся аргументы программы BDY2MIF:

/NC

Указывает BDY2MIF, что не надо проверять замкнутость границ. Хотя это ускоряет работу BDY2MIF, имеется риск автоматического замыкания незамкнутых границ неопределенным образом при использовании данного режима.

/N:название

задает название для поля границ (например, ZIP или City).

/NW:длина_названия

задает длину поля названия. Стандартная длина поля определяется BDY2MIF как самое длинное название в файле границ, округленное до ближайшего числа, кратного пяти.

642

Приложение D: Создание выражений

Процесс составления выражений MapInfo похож на то, как мы пишем предложения на родном языке. В нашем распоряжении есть набор слов, которые можно использовать, и синтаксические правила для соединения этих слов. Синтаксис выражений MapInfo гораздо проще синтаксиса русского языка. Правила русского языка кажутся нам простыми только потому, что мы пользуемся им постоянно, а правила составления выражений могут только на первых порах показаться сложными.

Впрочем, как и предложения русского языка, выражения в MapInfo можно сделать весьма сложными. Если Вы не освоились с созданием сложных выражений, все равно возможности, предоставляемые простыми выражениями, создаваемыми в диалогах команд MapInfo, позволяют управлять данными вполне профессионально.

Составление выражений

Простые выражения

Выражение составляются с использованием названий колонок (или полей) и констант (то есть постоянных значений), а также функций и операторов. Названия колонок и константы можно сравнить с существительными, а функции и операторы – с глаголами, предлогами и союзами. В любом выражении всегда должно присутствовать хотя бы одно название колонки или хотя бы одна константа. Количество функций и операторов зависит от Ваших нужд и фантазии.

Простейшие возможные выражения состоят из названий колонок, например

1.ÍÀÑ_1990

2.ОБЛАСТЬ

Такие выражения Вы можете использовать в команде ВЫДЕЛИТЬ УСЛОВНО, чтобы указать, какие данные должны быть отображены на карте. В команде ОБНОВИТЬ КОЛОНКУ подобное выражение задает данные, которые следует использовать при пересчете таблицы.

Чуть более сложными являются выражения:

3ÍÀÑ_1990 > 17893

4.ÍÀÑ_1990 <= ÍÀÑ_1980

5.ОБЛАСТЬ <> "Выхино"

6.ÍÀÑ_1980 * 1.2

7.НАС_1990 / ПЛОЩАДЬ

8.round(НАС_1990 / ПЛОЩАДЬ, .1)

Приложение D: Создание выражений

Первые три из них используют оператор сравнения. Первое выражение задает проверку: было ли в 1990 году население больше (>) заданной константы (17893). Второе проверяет, какие значения в колонке НАС_1990 меньше или равны (<=) значениям из другой колонки – НАС_1980. Третье проверяет, относится ли запись к области Выхино. Если название области не равно (<>) “Выхино”, то запись попадает в выборку. Такие выражения могут быть применены в команде ВЫБРАТЬ или в окошке Ñ

условием команды SQL-ЗАПРОС. Эти команды делают выборку записей из таблицы, удовлетворяющих заданному выражению.

Примеры 6 и 7 используют арифметические операторы. В примере 6 значения в колонке НАС_1980 умножаются (*) на константу (1.2), а в примере 7 значения из одной колонки (НАС_1990) делятся на значения из другой колонки (ПЛОЩАДЬ).

В примере 8 применена функция округления, округляющая значение выражения “НАС_1990 / ПЛОЩАДЬ” до ближайшей десятой доли (.1).

Выражения 6, 7 и 8 не содержат операторов сравнения и поэтому не могут быть использованы в команде ВЫБРАТЬ или в окошке С условием команды SQL-ЗАПРОС. Однако Вы можете применить их в командах ВЫДЕЛИТЬ УСЛОВНО, Обновить колонку или в окошке Выбрать колонки команды SQL-ЗАПРОС.

Сложные выражения

Теперь рассмотрим примеры 9 и 10, более сложнее, чем 1-8:

9.ÍÀÑ_1990 > ÍÀÑ_1980*1.2

10.round((НАС_1980*1.2) / ПЛОЩАДЬ, .1)

Мы создали выражение 9, взяв выражение 3 и заменив константу “17893” выражением 6. Аналогично, выражение 10 получено из выражения 8 заменой названия “НАС_1990” выражением 6.

Таким образом, сложные выражения получаются путем комбинации простых выражений. Возможно, лучшим способом изучения сложных выражений будет для Вас составление сложных выражений из примеров, которые приведены выше и будут еще рассмотрены в этом приложении. Сложные выражения создаются в основном двумя способами:

Заменой названия колонки или константы на простое выражение.

Соединением выражений с помощью логических операторов (and, not, or). Пример 9 показывает первый способ, а о логических выражениях речь пойдет ниже.

Задание постоянных значений (констант)

При употреблении в выражениях фиксированных значений – строк, числовых констант и дат – Вы должны следовать следующим соглашениям.

Строки символов

Если Вы употребляете в выражении строку символов, то эта строка должна быть заключена в двойные кавычки. Таким образом MapInfo отличает строки символов от

644

Приложение D: Создание выражений

названий колонок. Например, строки 11 и 12 из приведенных ниже являются строками-константами, а 13 и 14 – не являются.

11."Яблоко"

12."Новый Орлеан"

13.Яблоко

14.Новый Орлеан

Числа

При задании числовых констант не набирайте запятые или знак доллара. Допустимы только цифры, десятичная точка, используемая как разделитель целой и дробной части, и знак “минус” для отрицательных чисел.

Äàòû

Даты состоят из месяца, дня и, возможно, года. Год обозначается двумя или четырьмя цифрами. Вся дата заключается в двойные кавычки, причем месяцы, дни и годы отделяются друг от друга знаками тире или наклонной чертой (/). Вот примеры допустимых дат, обозначающих первое января:

15."1-20-94"

16."01/20/1994"

17."1/20"

Операторы

Математические операторы:

+

сложение

A + B

 

 

 

-

вычитание

A – B (вычитание)

 

 

-A (отрицательное число)

 

 

 

*

умножение

A * B

 

 

 

/

деление

A / B

 

 

 

^

возведение в степень

A ^ B

 

 

 

Разрешаются также следующие виды вычислений:

Прибавление числа к дате с получением новой даты.

Вычитание числа из даты с получением новой даты.

Вычитание даты из даты с получением числа.

645

Приложение D: Создание выражений

При прибавлении чисел к датам или вычитании чисел из дат, MapInfo считает числа номером дня в месяце. Так, для вычитания или прибавления недели надо использовать число 7, а для вычитания или прибавления месяца – числа 30 или 31. При вычитании даты из даты результат содержит количество дней.

Строчный оператор:

+“склейка” — соединение строк или строковых выражений.

Строки должны быть заключены в двойные кавычки. Рассмотрим, например:

"Ms. " + Фамилия

При вычислении значения этого выражения MapInfo поставит “Ms. ” перед каждым значением фамилии. Строковая константа (“Ms. “) взята в двойные кавычки. Аналогично,

"Здравствуй, " + "мир"

дает “Здравствуй, мир”, а

”4”+”5”

дает строку “45.”

Операторы сравнения:

=“равно”

<>

“не равно”

>“больше”

<“меньше”

>=

“больше или равно”

<=

“меньше или равно”

Сравнение чисел

Числовое сравнение основано на сравнении значений числовых выражений и числовых констант.

Русский: Все данные о домовладельцах, чей доход больше 65 000.

18.ДВ_ДОХОД>65000

Комментарий: Не используйте знак доллара или запятые! MapInfo не обрабатывает их и выдаст сообщение об ошибке.

Русский: Записи, где средний возраст равен 42.

19.СРЕД_ВОЗРАСТ=42

Комментарий: Это выражение задает выбор только тех записей, в которых средний возраст в точности равен 42 годам. Если же колонка данных о среднем возрасте

646

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