Объединение нескольких таблиц с одинаковым название в одну

MapInfo, MapBasic
Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Объединение нескольких таблиц с одинаковым название в одну

Сообщение WeMaN » 26 май 2009, 11:39

Здравствуйте!! У меня тут очень актуальный, интересный и филосовский вопрос-проблем, касательно таблиц. Вот допустим есть у меня 10 таблиц с одинаковым именем "1" (ну естествено объекты нахордящиеся в них разные по месторасположению, но одинаковые по смыслу) у всех таблиц одинаковые поля для заполнения семантики, так вот вопрос можно ли из них сделать одну большую таблицу с сохранением оформления, семантики и месторасположения всех объектов. Кто сталкивался с этим, ответьте как с этой проблемой справлялись вы, у меня есть одно решение, но оно работает через раз, а имено в зависимости от количество объектов, но про это позже... Заранее спасибо за ответ

Mapper
Интересующийся
Сообщения: 15
Зарегистрирован: 17 апр 2009, 21:15
Репутация: 7

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение Mapper » 26 май 2009, 12:55

В окне MapBasic надо написать что-то в таком духе:

Open Table "C:\1.tab"
Open Table "D:\1.tab" As 2
Insert Into 1 select * from 2,

если правильно понял о чём речь.

Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение WeMaN » 26 май 2009, 13:15

А можете для особо понятливых поподробней,а? Где окно мэп бэйсик, что потом с этим всем делать, как запустить скрипт и т.д. и т.п.

Mapper
Интересующийся
Сообщения: 15
Зарегистрирован: 17 апр 2009, 21:15
Репутация: 7

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение Mapper » 26 май 2009, 13:39

Окно MapBasic открывается через меню Настройки, команда Показать окно MapBasic. Команды в окне вводятся клавишей Enter. Вообще все строки скрипта можно поместить в пустой рабочий набор, в блокноте, сохранить и открыть его в MapInfo, вся последовательность команд будет выполнена. Добавить одну таблицу к другой можно и через интерфейс MapInfo. Если таблица с таким именем уже открыта, то MapInfo предложит использовать псевдоним для имени. После этого меню Таблица-Добавить записи к таблице. Указываете первую и вторую таблицу и ОК. Но если таблиц десяток то проще как я сказал. В скрипте в конце добавьте строку Commit Table 1, чтобы сохранить изменения в таблице.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение KolesovDmitry » 26 май 2009, 14:33

WeMaN писал(а): Вот допустим есть у меня 10 таблиц ... у всех таблиц одинаковые поля для заполнения семантики, так вот вопрос можно ли из них сделать одну большую таблицу с сохранением оформления, семантики и месторасположения всех объектов.
Есть gdal/ogr - набор замечательных утилит для работы с векторными и растровыми данными. Пользуясь ими, можно очень многое сделать, в том числе и склейку большого числа файлов в один. Этот процесс описан здесь. В статье рассматривается работа с shp-файлами, но ogr2ogr хорошо поддерживает и файлы MapInfo.

Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение WeMaN » 26 май 2009, 14:57

Спасибо за советы буду пробовать, кто ещё знает варианты, то пишите!!

Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение WeMaN » 27 май 2009, 13:56

KolesovDmitry писал(а): Есть gdal/ogr - набор замечательных утилит для работы с векторными и растровыми данными. Пользуясь ими, можно очень многое сделать, в том числе и склейку большого числа файлов в один. Этот процесс описан здесь. В статье рассматривается работа с shp-файлами, но ogr2ogr хорошо поддерживает и файлы MapInfo.
А оформление таблицы мапинфовской сохраняется?


Mapper, в общем не получилось у меня по вашим рекомендациям, хотя конечно крипт я ваш оценил, но я так понял у него смысл такой как у функции Таблица-Добавить записи в таблицу.
Так что что при этой функции, что во время использования вашего скрипта, который работает, что уже круто, у меня возникла проблема, далее в картинках.

вот две таблицы с права одна карта слева другая, открыты 2 файла одновременно:

Изображение

А вот объединённые таблицы: :(

Изображение

Присоединял левую таблицу к правой, а получилось что она сплющилась вся, вернее все объекты на ней...
В чё проблема, как считаете? В общем я думаю что данный косяк из-за слишком большого количества объектов в таблице, ИБО ЕСЛИ копировать символы по 1 или 10 то всё нормально... Версия MapInfo 7,8... Жду совета!!!

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение Boris » 28 май 2009, 00:28

Так бывает, когда:
а) работа выполнена в план-схеме или иной проекции с жестко заданными граница таблицы.
б) добавляются объекты, координаты которых в исходной таблице были правильными, а результирующей попадают за границу (в данном случае левую).
Надо утилитой Table Manager посмотреть границы обеих таблиц.

bim2010
Гуру
Сообщения: 977
Зарегистрирован: 27 янв 2009, 22:57
Репутация: 258

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение bim2010 » 28 май 2009, 01:19

Gold tools for Mapinfo
Одна из утилит производит слияние графики и данных множества таблиц в одну.
Ограничения : имя результирующей таблицы не должно начинаться с цифры.
За один раз можно слить не более 200 таблиц.

Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение WeMaN » 28 май 2009, 12:55

Boris,уважаемый, где найти данную утилиту и можно ли в мапинфе увеличить границы?
bim2010 Gold tools есть в свободном доступе? И есть не трудно, подскажите где найти

Mapper
Интересующийся
Сообщения: 15
Зарегистрирован: 17 апр 2009, 21:15
Репутация: 7

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение Mapper » 28 май 2009, 13:06

Как справедливо заметил Boris, у карты к которой Вы добавляли объекты определены границы. Все объекты которые выходят за пределы будут сплющиваться вдоль границы. Чтобы посмотреть или изменить охват карты используйте утилиту CoordSys Bounds Manager (Задать и проверить границы...), она есть в комплекте MapInfo. Запускается из меню Программы-Каталог программ, и далее выберите эту программку.

Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение WeMaN » 28 май 2009, 16:38

У меня в программах ни этой утилиты ни других программ нет, может она есть где-нить в установочных фалах?
И ещё, можно ли сделать из того скрипта что мне давали кнопку и запихнуть её в программа, и как это сделать...

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение Boris » 29 май 2009, 02:35

Можно - все. Только зачем так себя мучить? У вас есть хоть какая-то система в названиях или вы ее списком получаете? Кнопка обычно используется для повторяемых операций - вы что их собираетесь каждый день по нескольку раз объединять?
Что бы не пересказывать руководство по MapInfo - зайдите на сайт esti-map.ru - там есть руководство на русском языке. Думаю, что оно снимет 98% ваших вопросов. В том числе и о том как увидеть все утилиты в меню Tools и как найти окно MapBasic.
Детали мы вам с удовольствием подскажем. Надо будет и скрипт для DOS Windows XP - выложим.

Аватара пользователя
WeMaN
Завсегдатай
Сообщения: 310
Зарегистрирован: 16 фев 2009, 10:49
Репутация: 0

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение WeMaN » 31 май 2009, 14:13

Boris, ценю ваши советы, возможно с кнопкой я реально погорячился не учёв тот момент, что действительно имена то у таблиц разные...
Собственно на данном этапе работы проблемо только одна, рашрить рамки границы таблицы чтобы объеденить её с другой таблицей, вопрос как это сделать? Есть некая программа которая у меня не отображается, можно ли её отобразить? Если вы знаете ответ, то зачем же отсылать к многостраничному мануалу, который я и так переодически полистываю у себя на столе...
Вопрос не в том есть ли такое или нет, а как это возможно сделать

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Объединение нескольких таблиц с одинаковым название в одну

Сообщение Boris » 01 июн 2009, 13:28

Нет проблем, сейчас напишу по шагам:
1. Открываем MI, я буду ссылаться на русскую 7.5
2. создадим текстовый файл с полем точек командами DOS:

Код: Выделить всё

for /l %x in (-2000,500,10000) do @echo 1,%x,%x >> 1.txt
Это пример точек, которые идут по диагонали через все поле координатной системы. С началом до границ координатной системы.
3. Откроем текстовый файл в MI, сохраним его в таблицу

Код: Выделить всё

CoordSys NonEarth Units "m" Bounds (0, 0) (10000, 10000)
Columns 3
  ID1 Integer
  X Integer
  Y Integer
Data
Untitled-2.png
Untitled-2.png (12.54 КБ) 17280 просмотров
4. поправим координату y - сместив ее на 2000 м

Код: Выделить всё

update temp1 set y=x+2000
4. геокодируем координаты в точки.
5. Получили линию из точек ((-1500;500) (10000;12000)). Видно, что по краям линия искажена
Untitled-3.png
Untitled-3.png (6.34 КБ) 17282 просмотра
6. вызываем программу
Untitled-4.png
Untitled-4.png (12.69 КБ) 17285 просмотров
и видим результат
Untitled-5.png
Untitled-5.png (10.64 КБ) 17282 просмотра
7. если задать новые границы рамок таблицы, то кнопкой "Сохранить копию ..." раньше (в старых версиях) сохранялась новая таблица с измененными границами. У меня сейчас выдает сообщение об ошибке при сохранении. :(
8. поэтому приходится сохранять на прямую командой "Сохранить копию" с указанием новых границ :
Untitled-6.png
Untitled-6.png (17.04 КБ) 17279 просмотров
9. Теперь повторив "Создать точечные объекты", видим, что границы карты - расширились.
Untitled-7.png
Untitled-7.png (7.68 КБ) 17282 просмотра
---
Если в списке программы нет, то добавляем ее по названию:
Untitled-8.png
Untitled-8.png (9.76 КБ) 17287 просмотров
---
Если это не то, что было нужно, то я извиняюсь за отнятое время.
Как приду домой - выложу скрипт для командной строки, который генерил набор команд для окна Mapbasic'а, который "сливал" все таблицы из указанного каталога в одну.

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей