Использование инструмента связи геоданных и внешних файлов в 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
Автор(ы): Борис Фельдман
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).