GIS-LAB

Географические информационные системы и дистанционное зондирование

Геоссылка в Mapinfo

Использование инструмента связи геоданных и внешних файлов в Mapinfo

Обсудить в форуме Комментариев — 8

Исходные условия и подготовка

Задача: Организовать запуск некоторого контента при выборе определенного объекта на карте.

Пути решения: Использовать стандартный механизм HotLink, в русском наименовании "геоссылку" (далее ГС), позволяющий превращать текстовое поле таблицы в гиперссылку. Все действия с указанным путем производятся, так как если бы данный файл был выбран в окне проводника Windows.

Подготовительная работа:

1. Создадим каталог, в который положим набор JPG файлов. Все их пронумеруем от 0 до 77 – получим имена img000.jpg - img077.jpg

2. Полные пути к этим файлов, хотя можно использовать и относительные, далее занесем в специально выбранное поле.

Порядок действий

1. Открываем таблицу, на поле из которой будем показывать ссылки.

2. В нем должно быть текстовое поле достаточной длины, что бы вместить ссылки. Т.к. ограничение на длину текста 254 символа – либо ссылки должны быть относительными к адресу самой таблицы, либо полностью укладываться в 254 символа. Кавычки – не нужны.

3. Допустим мы используем каталог "T:\70\" для таблицы и картинок, но путь будем указывать полный - "T:\70\img000.jpg "

4. Вот пример структуры таблицы. Использована карта районов Московской области, их названия искажены:

 

5. Поле для ссылок – xREF char(254)

6. Вот данные, которыми оно заполнено (скачать таблицу и изображения)

Каждой записи – соответствует путь к файлу.

7. Теперь создаем собственно HotLink:

A. Открываем таблицу в окне карты

B. Открываем управление слоями:

C. Выбираем "HotLink…"

D. Появляется следующее окно:

E. Заполняем его данными о том, какое поле и как будет использоваться для ссылок.

F. Выбираем Add

G. Выбираем (меняем) поле, в котором храним ссылки. В нашем случае по умолчанию выбралось 1-ое текстовое поле, а нам нужно, что бы это было поле xREF.

H. Производим выбор дополнительных настроек:

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

ii. Переключатель File locations … - если не указан диск, то пути будут считать относительными путями, и рассчитываться по отношению к текущему положению таблицы со ссылками.

iii. Радио-кнопки Activate HotLink on: определяет на чем будет срабатывать наш указатель вызова ссылки (ГС), на подписях объекта, на самом объекте или на том и другом.

iv. Save options to table metadata – указывает на то, что надо сохранить наши настройки вызова ГС в метаданные таблицы. Это ДОЛЖНО позволить сохранить настройки для последующего использования. Эти данные записываются в файл TAB таблицы. Вот так это выглядит:

begin_metadata "\ActiveObject" = ""
"\ActiveObject\Expr" = "xREF"
"\ActiveObject\Mode" = "HOTLINK_MODE_BOTH"
"\ActiveObject\Relative" = "TRUE"
"\ActiveObject\Enabled" = "TRUE"
"\IsReadOnly" = "FALSE"
end_metadata 

I. Закрываем окна настройки ГС и слоев карты.

8. Теперь надо вызвать ГС, что бы она запустила нам файл-ссылку на выполнение. Для этого используется специальный режим. Он вызывается после выбора кнопки HotLink :

9. Теперь при выборе объекта, имеющего ГС, форма курсора будет менять на символ "рука с молнией".

10. После нажатия кнопки мыши на объекте с названием "Молодежный" – произошел запуск вот такой картинки из файла "T:\70\img050.jpg

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

Задача решена.

Как показать только названия файлов без пути.

Геолинк показывает полный путь к файлу в следующих случаях:

    • если они явно указаны;
    • если в настройках слоев указано, что файлы будут искаться относительно текущего положения таблицы с геолинком:

    Прописывание ссылки не файл, а на его ярлык (Shortcut) – файл с расширением lnk и применение инструмента "геолинк" к такой ссылке приводит к аварийному завершению Mapinfo.

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

    В этом случае, при наведении "геолинка" на объект карты, название файла выводится БЕЗ указания полного пути:

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

    В случае, когда задан только один столбец для "геолинка" и нет перекрытия объектов – сразу же выполняется ссылка, без всяких промежуточных окон. Для варианта с двумя и более столбцами для "геолинка" (в версиях 9.0 и выше), может задаваться порядок их обработки:

    И использование инструмента "геолинк" вызывает окно выбора поля:

    Обсудить в форуме Комментариев — 8

    Последнее обновление: September 09 2021

    Дата создания: 15.10.2009
    Автор(ы): Борис Фельдман