Объединение нескольких таблиц с одинаковым название в одну
- WeMaN
- Завсегдатай
- Сообщения: 310
- Зарегистрирован: 16 фев 2009, 10:49
- Репутация: 0
Объединение нескольких таблиц с одинаковым название в одну
Здравствуйте!! У меня тут очень актуальный, интересный и филосовский вопрос-проблем, касательно таблиц. Вот допустим есть у меня 10 таблиц с одинаковым именем "1" (ну естествено объекты нахордящиеся в них разные по месторасположению, но одинаковые по смыслу) у всех таблиц одинаковые поля для заполнения семантики, так вот вопрос можно ли из них сделать одну большую таблицу с сохранением оформления, семантики и месторасположения всех объектов. Кто сталкивался с этим, ответьте как с этой проблемой справлялись вы, у меня есть одно решение, но оно работает через раз, а имено в зависимости от количество объектов, но про это позже... Заранее спасибо за ответ
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 17 апр 2009, 21:15
- Репутация: 7
Re: Объединение нескольких таблиц с одинаковым название в одну
В окне MapBasic надо написать что-то в таком духе:
Open Table "C:\1.tab"
Open Table "D:\1.tab" As 2
Insert Into 1 select * from 2,
если правильно понял о чём речь.
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: Объединение нескольких таблиц с одинаковым название в одну
А можете для особо понятливых поподробней,а? Где окно мэп бэйсик, что потом с этим всем делать, как запустить скрипт и т.д. и т.п.
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 17 апр 2009, 21:15
- Репутация: 7
Re: Объединение нескольких таблиц с одинаковым название в одну
Окно MapBasic открывается через меню Настройки, команда Показать окно MapBasic. Команды в окне вводятся клавишей Enter. Вообще все строки скрипта можно поместить в пустой рабочий набор, в блокноте, сохранить и открыть его в MapInfo, вся последовательность команд будет выполнена. Добавить одну таблицу к другой можно и через интерфейс MapInfo. Если таблица с таким именем уже открыта, то MapInfo предложит использовать псевдоним для имени. После этого меню Таблица-Добавить записи к таблице. Указываете первую и вторую таблицу и ОК. Но если таблиц десяток то проще как я сказал. В скрипте в конце добавьте строку Commit Table 1, чтобы сохранить изменения в таблице.
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Объединение нескольких таблиц с одинаковым название в одну
Есть gdal/ogr - набор замечательных утилит для работы с векторными и растровыми данными. Пользуясь ими, можно очень многое сделать, в том числе и склейку большого числа файлов в один. Этот процесс описан здесь. В статье рассматривается работа с shp-файлами, но ogr2ogr хорошо поддерживает и файлы MapInfo.WeMaN писал(а): Вот допустим есть у меня 10 таблиц ... у всех таблиц одинаковые поля для заполнения семантики, так вот вопрос можно ли из них сделать одну большую таблицу с сохранением оформления, семантики и месторасположения всех объектов.
- WeMaN
- Завсегдатай
- Сообщения: 310
- Зарегистрирован: 16 фев 2009, 10:49
- Репутация: 0
Re: Объединение нескольких таблиц с одинаковым название в одну
Спасибо за советы буду пробовать, кто ещё знает варианты, то пишите!!
- WeMaN
- Завсегдатай
- Сообщения: 310
- Зарегистрирован: 16 фев 2009, 10:49
- Репутация: 0
Re: Объединение нескольких таблиц с одинаковым название в одну
А оформление таблицы мапинфовской сохраняется?KolesovDmitry писал(а): Есть gdal/ogr - набор замечательных утилит для работы с векторными и растровыми данными. Пользуясь ими, можно очень многое сделать, в том числе и склейку большого числа файлов в один. Этот процесс описан здесь. В статье рассматривается работа с shp-файлами, но ogr2ogr хорошо поддерживает и файлы MapInfo.
Mapper, в общем не получилось у меня по вашим рекомендациям, хотя конечно крипт я ваш оценил, но я так понял у него смысл такой как у функции Таблица-Добавить записи в таблицу.
Так что что при этой функции, что во время использования вашего скрипта, который работает, что уже круто, у меня возникла проблема, далее в картинках.
вот две таблицы с права одна карта слева другая, открыты 2 файла одновременно:
А вот объединённые таблицы:
Присоединял левую таблицу к правой, а получилось что она сплющилась вся, вернее все объекты на ней...
В чё проблема, как считаете? В общем я думаю что данный косяк из-за слишком большого количества объектов в таблице, ИБО ЕСЛИ копировать символы по 1 или 10 то всё нормально... Версия MapInfo 7,8... Жду совета!!!
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Объединение нескольких таблиц с одинаковым название в одну
Так бывает, когда:
а) работа выполнена в план-схеме или иной проекции с жестко заданными граница таблицы.
б) добавляются объекты, координаты которых в исходной таблице были правильными, а результирующей попадают за границу (в данном случае левую).
Надо утилитой Table Manager посмотреть границы обеих таблиц.
а) работа выполнена в план-схеме или иной проекции с жестко заданными граница таблицы.
б) добавляются объекты, координаты которых в исходной таблице были правильными, а результирующей попадают за границу (в данном случае левую).
Надо утилитой Table Manager посмотреть границы обеих таблиц.
-
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
Re: Объединение нескольких таблиц с одинаковым название в одну
Gold tools for Mapinfo
Одна из утилит производит слияние графики и данных множества таблиц в одну.
Ограничения : имя результирующей таблицы не должно начинаться с цифры.
За один раз можно слить не более 200 таблиц.
Одна из утилит производит слияние графики и данных множества таблиц в одну.
Ограничения : имя результирующей таблицы не должно начинаться с цифры.
За один раз можно слить не более 200 таблиц.
- WeMaN
- Завсегдатай
- Сообщения: 310
- Зарегистрирован: 16 фев 2009, 10:49
- Репутация: 0
Re: Объединение нескольких таблиц с одинаковым название в одну
Boris,уважаемый, где найти данную утилиту и можно ли в мапинфе увеличить границы?
bim2010 Gold tools есть в свободном доступе? И есть не трудно, подскажите где найти
bim2010 Gold tools есть в свободном доступе? И есть не трудно, подскажите где найти
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 17 апр 2009, 21:15
- Репутация: 7
Re: Объединение нескольких таблиц с одинаковым название в одну
Как справедливо заметил Boris, у карты к которой Вы добавляли объекты определены границы. Все объекты которые выходят за пределы будут сплющиваться вдоль границы. Чтобы посмотреть или изменить охват карты используйте утилиту CoordSys Bounds Manager (Задать и проверить границы...), она есть в комплекте MapInfo. Запускается из меню Программы-Каталог программ, и далее выберите эту программку.
- WeMaN
- Завсегдатай
- Сообщения: 310
- Зарегистрирован: 16 фев 2009, 10:49
- Репутация: 0
Re: Объединение нескольких таблиц с одинаковым название в одну
У меня в программах ни этой утилиты ни других программ нет, может она есть где-нить в установочных фалах?
И ещё, можно ли сделать из того скрипта что мне давали кнопку и запихнуть её в программа, и как это сделать...
И ещё, можно ли сделать из того скрипта что мне давали кнопку и запихнуть её в программа, и как это сделать...
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Объединение нескольких таблиц с одинаковым название в одну
Можно - все. Только зачем так себя мучить? У вас есть хоть какая-то система в названиях или вы ее списком получаете? Кнопка обычно используется для повторяемых операций - вы что их собираетесь каждый день по нескольку раз объединять?
Что бы не пересказывать руководство по MapInfo - зайдите на сайт esti-map.ru - там есть руководство на русском языке. Думаю, что оно снимет 98% ваших вопросов. В том числе и о том как увидеть все утилиты в меню Tools и как найти окно MapBasic.
Детали мы вам с удовольствием подскажем. Надо будет и скрипт для DOS Windows XP - выложим.
Что бы не пересказывать руководство по MapInfo - зайдите на сайт esti-map.ru - там есть руководство на русском языке. Думаю, что оно снимет 98% ваших вопросов. В том числе и о том как увидеть все утилиты в меню Tools и как найти окно MapBasic.
Детали мы вам с удовольствием подскажем. Надо будет и скрипт для DOS Windows XP - выложим.
- WeMaN
- Завсегдатай
- Сообщения: 310
- Зарегистрирован: 16 фев 2009, 10:49
- Репутация: 0
Re: Объединение нескольких таблиц с одинаковым название в одну
Boris, ценю ваши советы, возможно с кнопкой я реально погорячился не учёв тот момент, что действительно имена то у таблиц разные...
Собственно на данном этапе работы проблемо только одна, рашрить рамки границы таблицы чтобы объеденить её с другой таблицей, вопрос как это сделать? Есть некая программа которая у меня не отображается, можно ли её отобразить? Если вы знаете ответ, то зачем же отсылать к многостраничному мануалу, который я и так переодически полистываю у себя на столе...
Вопрос не в том есть ли такое или нет, а как это возможно сделать
Собственно на данном этапе работы проблемо только одна, рашрить рамки границы таблицы чтобы объеденить её с другой таблицей, вопрос как это сделать? Есть некая программа которая у меня не отображается, можно ли её отобразить? Если вы знаете ответ, то зачем же отсылать к многостраничному мануалу, который я и так переодически полистываю у себя на столе...
Вопрос не в том есть ли такое или нет, а как это возможно сделать
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Объединение нескольких таблиц с одинаковым название в одну
Нет проблем, сейчас напишу по шагам:
1. Открываем MI, я буду ссылаться на русскую 7.5
2. создадим текстовый файл с полем точек командами DOS:
Это пример точек, которые идут по диагонали через все поле координатной системы. С началом до границ координатной системы.
3. Откроем текстовый файл в MI, сохраним его в таблицу
4. поправим координату y - сместив ее на 2000 м
4. геокодируем координаты в точки.
5. Получили линию из точек ((-1500;500) (10000;12000)). Видно, что по краям линия искажена 6. вызываем программу и видим результат 7. если задать новые границы рамок таблицы, то кнопкой "Сохранить копию ..." раньше (в старых версиях) сохранялась новая таблица с измененными границами. У меня сейчас выдает сообщение об ошибке при сохранении.
8. поэтому приходится сохранять на прямую командой "Сохранить копию" с указанием новых границ : 9. Теперь повторив "Создать точечные объекты", видим, что границы карты - расширились. ---
Если в списке программы нет, то добавляем ее по названию: ---
Если это не то, что было нужно, то я извиняюсь за отнятое время.
Как приду домой - выложу скрипт для командной строки, который генерил набор команд для окна Mapbasic'а, который "сливал" все таблицы из указанного каталога в одну.
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
Код: Выделить всё
update temp1 set y=x+2000
5. Получили линию из точек ((-1500;500) (10000;12000)). Видно, что по краям линия искажена 6. вызываем программу и видим результат 7. если задать новые границы рамок таблицы, то кнопкой "Сохранить копию ..." раньше (в старых версиях) сохранялась новая таблица с измененными границами. У меня сейчас выдает сообщение об ошибке при сохранении.
8. поэтому приходится сохранять на прямую командой "Сохранить копию" с указанием новых границ : 9. Теперь повторив "Создать точечные объекты", видим, что границы карты - расширились. ---
Если в списке программы нет, то добавляем ее по названию: ---
Если это не то, что было нужно, то я извиняюсь за отнятое время.
Как приду домой - выложу скрипт для командной строки, который генерил набор команд для окна Mapbasic'а, который "сливал" все таблицы из указанного каталога в одну.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей