Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alladin
Зарегистрирован: 08.02.2010 Сообщения: 3
|
Добавлено: Пн Фев 08, 2010 7:22 am Заголовок сообщения: Объединение слоёв |
|
|
Добрый день. Столкнулся с проблемой, я инженер дорожник. У меня есть дорога, которая состоит из множества таблиц MapInfo, т.е. все объекты на дороге имеют свою таблицу (обочины1.tab, обочины2.tab, знаки1.tab, знаки2.tab и т.д.) порядка 40 таблиц. Я хочу объединить все таблицы в одну, или хотя бы все схожие типы объектов в одну (обочины1.tab+обочины2.tab+обочины3.tab=обочинывсе.tab) Как это можно сделать? Имеется опыт работы arcGIS, indorGIS. Но Mapinfo, какая-то другая специфика, и совсем нет времени рабиратся с 630-страничным мануалом Помогите пожалуйста. |
|
Вернуться к началу |
|
|
spawner
Зарегистрирован: 01.04.2009 Сообщения: 77
|
Добавлено: Пн Фев 08, 2010 7:59 am Заголовок сообщения: |
|
|
Стандартных средств пакетного объединения в мапинфо нет.
Создайте пустой файл с расширением .mb и поместите следующий текст:
Include "MAPBASIC.DEF"
'Добавляет все слои активной карты в первый слой
Declare Sub Main
Sub Main()
Dim A,LN as Integer
Dim LName,DName as String
LN = MapperInfo( FrontWindow(),MAPPER_INFO_LAYERS)
DName = ""
For A=1 to LN
LName = LayerInfo(FrontWindow(),A,LAYER_INFO_NAME)
if a=1 then
DName = LName
else
Insert Into DName
Select * From LName
end if
Next
End Sub
Откройте в мапбэйсике, скомпилируйте. Получите исполняемых файл .mbx
Каждый раз когда нужно объединить слои запускаете его.
Все таблицы должны иметь одинаковую структуру. |
|
Вернуться к началу |
|
|
Alladin
Зарегистрирован: 08.02.2010 Сообщения: 3
|
Добавлено: Пн Фев 08, 2010 9:55 am Заголовок сообщения: |
|
|
может быть есть какие платные/бесплатные приложения (с удобный интерфейсом, на английском/русском) к mapinfo, которые будут выполнять необходимые мне функции? |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
|
Вернуться к началу |
|
|
Alladin
Зарегистрирован: 08.02.2010 Сообщения: 3
|
Добавлено: Пн Фев 08, 2010 11:38 am Заголовок сообщения: |
|
|
Спасибо за ссылку, скачал попробовал, получился вот такой лог. Инструментарий хороший, если получится объединить, уговорю босса на покупку.
08.02.2010 15:35:25 Начат процесс слияния файлов каталога (5)...
Проход №1: Определение максимальных границ и структуры результирующей таблицы...
(1/5) Обрабатывается файл C:\Documents and Settings\Alladin\Рабочий стол\Ачинский район\Заозерный-Агинское_Рыбинский\Обочина.TAB... OK
(2/5) Обрабатывается файл C:\Documents and Settings\Alladin\Рабочий стол\Ачинский район\Заозерный-Агинское_Рыбинский\Обочина1.TAB... OK
(3/5) Обрабатывается файл C:\Documents and Settings\Alladin\Рабочий стол\Ачинский район\Заозерный-Агинское_Рыбинский\Обочина3.TAB... OK
(4/5) Обрабатывается файл C:\Documents and Settings\Alladin\Рабочий стол\Ачинский район\Заозерный-Агинское_Рыбинский\Обочина4.TAB... OK
(5/5) Обрабатывается файл C:\Documents and Settings\Alladin\Рабочий стол\Ачинский район\Заозерный-Агинское_Рыбинский\населенные пункты\Налобино\обочина.TAB... OK
Результаты прохода №1:
- размеры результирующей таблицы (0,0)(10000000,10000000)
- структура результирующей таблицы (площадь Decimal(20,3), ID Integer, ParentFileName Char(50))
Создание результирующей таблицы C:\Documents and Settings\Alladin\Рабочий стол\Ачинский район\Заозерный-Агинское_Саянский1.tab ...
ОШИБКА: Результатом выражения не является имя колонки или таблицы
что я не так делаю? |
|
Вернуться к началу |
|
|
reasonat
Зарегистрирован: 01.07.2009 Сообщения: 224 Откуда: Екатеринбург
|
Добавлено: Пн Фев 08, 2010 12:16 pm Заголовок сообщения: |
|
|
У нас на работе пользуют бесплатные утилитки для сшивания слоев. Различаются степенью подготовки материалов перед сшивкой. Либо пропиывать надо в текстовом файле имена таблиц, либо открыть в окне карты те таблицы, которые нужно сшить.
Я предпочитаю выбрать в коммандере или проводнике по маске кучу нужных файлов (например так: *обочины*.tab ), или просто вручную выбрать несколько файлов, и перетащить их на окно мапинфо, там они все откроются. А потом запускать утилиту сшивки. Вот моя утилитка |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Вт Фев 09, 2010 7:34 am Заголовок сообщения: |
|
|
Очень странно. Если есть возможность, вышлите пару слоев на support@map-info.ru
Мы оперативно посмотрим и ответим вам. |
|
Вернуться к началу |
|
|
~Бусинка~
Зарегистрирован: 02.02.2010 Сообщения: 8
|
Добавлено: Пт Фев 12, 2010 12:51 pm Заголовок сообщения: |
|
|
reasonat писал(а): |
У нас на работе пользуют бесплатные утилитки для сшивания слоев. Различаются степенью подготовки материалов перед сшивкой. Либо пропиывать надо в текстовом файле имена таблиц, либо открыть в окне карты те таблицы, которые нужно сшить.
Я предпочитаю выбрать в коммандере или проводнике по маске кучу нужных файлов (например так: *обочины*.tab ), или просто вручную выбрать несколько файлов, и перетащить их на окно мапинфо, там они все откроются. А потом запускать утилиту сшивки. Вот моя утилитка |
а не подскажите, когда обьединяю слои выдает такую вот ошибку:
(merginglayer.mb:103) LayerInfo: аргумент 2 вышел за заданые приделы.
уже проверила все размеры, все совпадает.... подскажите, пожалуйста что это за аргумент 2. и как его подправить, чтобы сшились слои |
|
Вернуться к началу |
|
|
reasonat
Зарегистрирован: 01.07.2009 Сообщения: 224 Откуда: Екатеринбург
|
Добавлено: Пт Фев 12, 2010 3:08 pm Заголовок сообщения: |
|
|
Возможно Вы не отметили изменяемым слой, к которому нужно пришить все остальные, открытые в окне. Причем этот слой не должен быть косметическим. Проще всего к первой из одинаковых таблиц (отметив этот слой изменяемым в управлении слоями) пришивать все остальные подобные таблицы (отметив их как доступные слои). После сшивки первую таблицу можно сохранить как копию под нужным именем, а в исходной - отменить изменения. Получится новая таблица, собранная из всех открытых в окне карты, а старые не поменяются. |
|
Вернуться к началу |
|
|
|