| Однажды мы нашли в Сети вопрос оставшийся без ответа:
Здравствуйте!
ГеоМедию ни разу не использовал. У меня есть х, y координаты, угол поворота и текст. Все это в DBF - табличке, можно и в текст скинуть - не суть. Дело в том, что вся эта лабуда была в ArcView - нет там текстовых классов (или слоев, как там называется), а объекты подписывать надо было. Был написан скриптик, который и вытаскивал текст в нужное место на виде.
Можно ли как то из этих данных создать текстовый класс объектов в GeoMedia 4.0? Так, чтобы объекты этого текстового класса находились в заданных координатах под заданным углом? Спасибо.
Краткий ответ есть в разделе Спрашивали?Отвечаем! Но в целях обучения мы решили "усложнить" задачу, взять самый неудобный (но жизненный) ее вариант и красиво ее решить. Учитывая направленность сайта на популяризацию и поддержку Geomedia технологий в русскоязычной среде мы делаем это в данном случае исключительно ради спорта, ибо неясно нужен ли ответ самому вопрошающему.
на заметку: возможно совпадение, но именно такого типа задачки мы часто задаем на тестах специалистам по ГИС при отборе кандидатов на работу. Прикольно, что большинство (наверное любители АркВью) порываются написать какие-то скрипты и очень удивляются. что в ГИС можно сделать такое "на лету" без программ и скриптов.
Возьмем более неудобный вариант, с текстовым файлом, так как вначале, текстовый файл необходимо превратить в фичер, может быть и вариант с DBF-ом через ODBC превращенным в фичер, а далее процедура выглядит одинаково.
Итак. У нас есть текстовый файл, который содержит координаты, угол поворота и текст (Рис. 01)
Запустим утилиту "Define Text File Server Format File" для создания tfd-файла. (Рис. 02)
tfd-файл содержит описание способа разбора текстового файла, т.е. Geomedia может подстраиваться под разные текстовые форматы, и конечно же простейший comma separated это вообще не задачка для столь интересного механизма.
Тем не менее продолжим:
Нажать кнопку New, для создания нового tfd-файла (Рис. 03)
Выбираем из списка текстовый файл, нажав кнопку "Browse...", после чего, нажимаем "Next >" (Рис. 04)
Выбираем разделитель (в данном примере - это точка с запятой) и нажимаем "Next >" (Рис. 05)
Теперь мы можем и видеть само содержимое файла и указывать программе как это содержимое понимать:
Указываем порядковые номера полей которые имеют координаты и нажимаем "Next >" (Рис. 06)
Именуем поля будущей таблицы и указываем тип данных. После чего, нажимаем "Finish" (Рис. 07).
Примечание: после указания имени и типа поля необходимо нажить Enter, для подтверждения.
Сохраняем tfd-файл.
Теперь подключаем текстовый файл в GeoMedia (Рис. 08), выбрав при этом: тип подключения "Text File", непосредственно сам текстовый файл, tfd-файл и файл координатной системы.
После этого шага GeoMedia оперирует данными из такого странного текстового файла точно также, как будто они пришли из другой ГИС или, например СУБД.
Выполняем стандартное построение подписи (Рис. 09, Рис. 10)
Разворачиваем текст, под углом, указанном в таблице. Запустим "Functional Attributes..." (Рис. 11)
Выбираем объект и нажимаем кнопку "New".
Заполняем поля, как указано на (Рис. 12). Текст: «SPIN(Input.Offset;Input.Angle)» и нажимаем "Add", после чего - "Close"
Задаем "Query name" и нажимаем "Ок"
Мы получили развернутый текст. Отображать на карте мы будем именно этот фичер- абсолютно динамический фичер, фактически полученый "прогонкой" сквозь несколько Пайпов.
|