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

MI6UGRU

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

Глава 8: Размещение данных на карте

4.Введите символ разделителя ГМС. Появится возможность просмотреть таблицу и определить разделитель в формате градус/минута/секунда.

5.Выберите столбец для размещения результатов конвертации. Тип данных должен быть у него десятичный или вещественный. Нажмите OK.

6.Откройте таблицу в виде списка и посмотрите новый столбец с информацией о координатах в десятичных градусах. Повторите эту процедуру к другому столбцу с координатами. Теперь Вы готовы использовать команду ТАБЛИЦА > ÑОЗДАТЬ ТОЧЕЧНЫЕ ОБЪЕКТЫ.

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

Рассеивание точек

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

147

Глава 8: Размещение данных на карте

disperse.mbx (утилита поставляемая вместе с MapInfo Professional), метод равной дисперсии и метод прямой дисперсии (dispersion to the right).

Disperse.mbx

Disperse.mbx - это программа MapBasic, поставляемая вместе с MapInfo Professional. Она рассеивает точки попадающие в одно и то же место. В ней применяются два метода рассеивания точек: систематизированное рассеивание или случайное.

Чтобы использовать программу Disperse.mbx:

1.Выполните команду ФÀÉË > ÇАПУСТИТЬ ПРОГРАММУ MAPBASIC. Появится диалог "Запустить программу MapBasic”.

2.Выберите команду Disperse.mbx, находящуюся в подкаталоге Tools каталога MapInfo. Нажмите кнопку ÎТКРЫТЬ. Меню этой программы будет добавлено к

основному меню Программы.

3.Выполните команду ПРОГРАММЫ > ÐАССЕИВАНИЕ > ÐАССЕИВАНИЕ. Появится диалог, показывающий Ваши таблицы. Выберите таблицу, содержащую точки, подлежащие рассеиванию. Нажмите OK.

4.Появится предупреждение с предложением сделать копию таблицы. Если Вы работаете с копией таблицы, нажмите кнопку ÏРОДОЛЖИТЬ.

5.Выберите подходящий метод рассеивания и нажмите OK. Каждый метод описан ниже:

Систематически

Точки грубо рассеиваются на расстояние

N,S,E,W,NE,SW,NW,S:

примерно в ширину символа от исходного

 

места в восьми возможных направлениях.

Систематически: По часовой

Точки рассеиваются на расстояние

стрелке

примерно в ширину символа по часовой

 

стрелке.

Случайное рассеивание

Точки рассеиваются вокруг исходного

 

положения случайным образом. В этом

 

случае точки могут перекрываться.

Случайное рассеивание с

Случайное рассеивание с выходящими

выходящими линиями

линиями, указывающими истинное

 

положение точки.

6.Появится диалог “Размеры”. Введите размер, в котором Вы хотите видеть эту таблицу. От этой величины зависит расстояние рассеивания. Нажмите OK.

148

Глава 8: Размещение данных на карте

Внимание: Эта программа работает несколько быстрее, если Вы не визуализируете таблицу, в которой происходит рассеивание.

Предупреждение: Программа непрерывно изменяет таблицу. Сохраните копию

таблицы перед запуском программы.

Метод равной дисперсии

Метод равной дисперсии рассеивает точки на одинаковое расстояние от центра.

1.В первую очередь, выделите все точки, которые попадают в одно и тоже место. Это может быть сделано с помощью инструмента Выбор-в-круге или Выбор-в- рамке.

2.Выполните команду НАСТРОЙКИ ОКАЗАТЬ ОКНО MAPBASIC, чтобы открыть окно MapBasic.

3.Поместите курсор в окно MapBasic и нажмите левую кнопку мышки. Наберите команду RANDOMIZE и нажмите Enter.

4.Наберите строчку UPDATE SELECTION SET OBJ = CREATEPOINT(CENTROIDX(OBJ) + (0.01/(COS(CENTROIDY(OBJ) * (.01745))))*(RND(1) - .5), CENTROIDY(OBJ) + 0.01*(RND(1) - .5)) и нажмите кнопку Enter.

Рассеивание в направлении направо

Этот метод рассеивает точки направо от исходной точки.

1.Прежде всего выберите все точки, которые попадают в одно и тоже место. Это может быть сделано с помощью инструмента Выбор-в-круге или Выбор-в-рамке.

2.Выполните команду НАСТРОЙКИ ОКАЗАТЬ ОКНО MAPBASIC, чтобы открыть окно MapBasic.

3.Поместите курсор в окно MapBasic и нажмите левую кнопку мышки. Наберите команду RANDOMIZE и нажмите Enter.

4.Наберите строчку UPDATE SELECTION SET OBJ = CREATEPOINT(CENTROIDX(OBJ) + 0.0099 * RND(1), CENTROIDY(OBJ) + 0.0099 * RND(1)) и нажмите кнопку Enter.

Таблица будет автоматически обновлена. Если рассеивание Вас не устраивает, выполните команду ПРАВКА > ÎТМЕНИТЬ и все объекты вернутся в исходное положение.

Для рассеивания точек во всей таблице, измените название таблицы в том месте командной строки (пункт 4), где стояло слово SELECTION.

149

Глава 8: Размещение данных на карте

Внимание: Вес рассеивания в приведенном в пункте 4 уравнении - это величина,

регулирующая новые координаты объекта X и Y. В приведенном примере вес рассеивания равен 0.01. Максимальное расстояние X или Y (в милях), на которые рассеивается точка, равно произведению (69 * вес рассеивания). Вес рассеивания – это регулируемая величина—чем больше вес, тем больше дистанция рассеивания. В вышеприведенном примере вес рассеивания подходит для масштаба государства и региона, но не подходит для масштаба улиц и городов. Если Вы считаете, что Ваши объекты недостаточно рассеяны или наоборот, дисперсия слишком велика, то следует увеличить или уменьшить вес.

Создание точек для пересечений

Многие пользователи, работающие с файлами в формате Street Info, интересуются

информацией о расположении пересечений. В MapInfo Вы можете геокодировать

пересечения в таких файлах, используя команду ТАБЛИЦА > ÃЕОКОДИРОВАНИЕ, íî

удобней работать с таблицей, содержащей только пересечения. Например,

муниципальные службы интересуются параметрами дорожного движения на каждом

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

содержит пересечения всех улиц.

Чтобы создать точки для каждого пересечения, сделайте следующее:

1.Выполните команду ФÀÉË > ÎТКРЫТЬ и откройте файл с улицами.

2.Создайте две копии файла с улицами и для каждой копии поменяйте имя файла. Выполните команду ФÀÉË > ÑОХРАНИТЬ КАК и сохраните Ваш файл под новым именем. Повторите этот шаг и сохраните файл под вторым новым именем.

3.Выполните команду ФÀÉË > ÎТКРЫТЬ ТАБЛИЦУ и откройте два вновь созданных файла.

4.Выполните команду ЗАПРОС > SQL-ÇАПРОС. Введите операторы запроса SQL как показано в диалоге. Этот запрос сравнивает два файла с улицами, где пересекаются улицы с разными именами.

150

Глава 8: Размещение данных на карте

5.Выполните команду ФÀÉË > ÑОХРАНИТЬ КОПИЮ и сохраните результирующую таблицу.

6.Откройте вновь созданную таблицу и раскодируйте ее. Выполните команду ТАБЛИЦА > ÈЗМЕНИТЬ > ÏЕРЕСТРОИТЬ и снимите флажок Можно присоединять географические объекты.

7.Теперь геокодируйте некартографическую таблицу с помощью одной из копий файла с улицами.

Внимание: У Вас могут получиться двойные точки в тех случаях, когда улица

пересекает другую более одного раза.

Перемещение широты и долготы из геокодированной

таблицы

Для перемещения широты и долготы из геокодированной таблицы можно или создать новую таблицу, содержащую широту и долготу для каждой точки в исходной тавблице или использовать команду ОБНОВИТЬ для размещения широты и долготы в исходной таблице. Исходная таблица должна быть в этом случае геокодирована очень аккуратно.

151

Глава 8: Размещение данных на карте

Перемещение широты и долготы в новую таблицу

В этом примере мы создадим новую таблицу, названную CUSCOORD, которая содержит

широту и долготу для каждой точки в исходной таблице Customer.

1.Выполните команду ФÀÉË > ÎТКРЫТЬ ТАБЛИЦУ и откройте таблицу в окне Списка.

2.Выполните команду ЗАПРОС > SQL-ЗАПРОС и заполните диалог, как показано ниже.

Внимание: Любые колонки из таблицы CUSTOMER, которые Вы хотите переместить в таблицу CUSCOORD должны быть указаны в окошке Выбрать колонки, затем

добавить функции centroidX(obj) и centroidY(obj) к этому запросу.

3. Нажмите OK и выполните запрос.

152

Глава 8: Размещение данных на карте

4.Выполните команду ФÀÉË > ÑОХРАНИТЬ КОПИЮ и сохраните результирующую таблицу CUSCOORD.

Исходная таблица:

Результирующая таблица:

Перемещение широты и долготы в исходную таблицу

Следующий процесс позволит Вам обновить исходную таблицу, содержащую

координаты широты и долготы.

1.Выполните команду ТАБЛИЦА ЗМЕНИТЬ ЕРЕСТРОИТЬ и добавьте две новых колонки к Вашей таблице. Нажмите кнопку ÄОБАВИТЬ ПОЛЕ и введите имя колонок. Они должны быть определены как Десятичные (13,6). Для этого примера колонки называются Долгота и Широта.

153

Глава 8: Размещение данных на карте

2.После добавления колонок нажмите OK. Когда Вы вернетесь в основное окно MapInfo, файл еще не будет показан. Чтобы показать внесенные изменения, выполните команду ОÊÍÎ > ÍОВЫЙ СПИСОК.

3.Далее выполните команду ТАБЛИЦА > ÎБНОВИТЬ КОЛОНКУ. Выберите

нужную таблицу и колонку для обновления в ней. В примере, приведенном ниже, мы обновляем колонку Долгота. В окошке Значения извлечь из будет таже таблица, как и в окошке Обновить таблицу. В окошке Значение введите Centroidx(obj) или нажмите кнопку ÑОСТАВИТЬ, откроется диалог "Выражение", в котором из предлагаемых функций выберите Centroidx и

154

Глава 8: Размещение данных на карте

нажмите OK. Заполните диалог, как показано ниже, и нажмите OK

4.Повторите шаг 3 для обновления колонки Широта. Замените Centroidy(obj) вместо Centroidx(obj).

Таблица в проекции, отличной от широта/долгота

Карты MapInfo имеют два типа атрибутов, действующих на координаты объектов на карте; это система координат карты и координатные настройки окна Карты. Для корректного перемещения координат X è Y в проекции, отличные от Широта/Долгота, система координат в окне Карты и система координат самой карты должна быть одной и той же. В MapBasic оператор SET MAP устанавливает систему координат для окна Карты, а предложение COORDSYS устанавливает внутреннюю систему координат для карты.

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

Широта/Долгота:

1.Откройте окно Карты.

2.Выполните команду НАСТРОЙКИ > ÏОКАЗАТЬ ОКНО MAPBASIC, чтобы открыть окно MapBasic.

3.Выполните команду КÀÐÒÀ > ÐЕЖИМЫ > ÏРОЕКЦИЯ и выберите подходящую проекцию. Нажмите OK. Обратите внимание на то, что в окне MapBasic появится предложение SET MAP.

4.Щелкните левой кнопкой мышки, указав курсором на заголовок геокодируемой таблицы, чтобы активизировать окно Карты.

155

Глава 8: Размещение данных на карте

5. Выделите все предложение SET MAP и нажмите Enter.

6.Предложение SET MAP изменяет проекцию координат в Вашей активной карте.

7.Сохраните геокодированную таблицу.

8.В завершение, используйте функцию Centroid X è Y и функции для перемещения координат в этой проекции из геокодированной таблицы, как описано в предыдущем разделе.

Геокодирование отдельных точек

Этот раздел рассматривает некоторые проблемы, решение которых полезно при обработке записей после геокодирования Вашей таблицы.

Выбор негеокодированных точек

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

1.Откройте Вашу таблицу, если она еще не открыта, и выполните команду ЗАПРОС > ÂЫБРАТЬ.

2.Заполните диалог так, как показано ниже. Используемое выражение - “NOT OBJ.” Этот запрос выберет все записи, которые не имеют объектов, то есть не геокодированы. Нажмите OK.

156

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