Страница 1 из 1
Сдвиг слоев
Добавлено: 03 мар 2017, 08:44
egormishin
Добрый день! Просьба подсказать существующие способы сдвига нескольких слоев одновременно?
В стандартном наборе Mi есть возможность сдвигать выделенные объекты, т.е можно выделить не более 1-го слоя и сдвинуть его в нужном направление на требуемое расстояние. Может есть такие утилиты, или может быть каким то образом повторяя команду MB, если кто знает как составить такую команду подскажите?
А также в продолжение темы нужно недавно было (уже сделал) поменять границы рамки карты для значительного кол-ва слоев, воспользовался стандартной утилитой "Граница рамки карты" но там неудобство менять приходилось только по одному слою сохраняя его копию, что очень затратно?
Re: Сдвиг слоев
Добавлено: 03 мар 2017, 10:58
Игорь Белов
Предлагаю решение обеих проблем, основанное на использовании
BatchTools и хорошего текстового редактора.
- Вычислим/измерим требуемый сдвиг по X и Y.
- Экспортируем все TAB в папке в MIF/MID:
[BatchTools] → [Run MIFexp]
- Вычислим новые параметры FalseEasting и FalseNorthing: оригинальные значения минус сдвиг.
- Текстовым редактором заменим CoordSys сразу во всех MIF в папке.
- Импортируем все MIF/MID в папке:
[BatchTools] → [Run BatchMIF]
- Подготовим новую проекцию. Это оригинальная с границами координат. В файле MAPINFOW.PRJ скопируем оригинальную проекцию в раздел с пользовательскими проекциями, добавим 2000 к номеру проеции, после параметров проекции вставим границы слоёв Bounds. Пример:
"GK Zone 7 (Pulkovo 1942)\p28407", 8, 1001, 7, 39, 0, 1, 7500000, 0
превратится в
"GK Zone 7 (площадь работ)", 2008, 1001, 7, 39, 0, 1, 7500000, 0, 7660000, 6180000, 7670000, 6190000
- Конвертируем все TAB в папке в новую проекцию (в другую папку):
[BatchTools] → [Run BatchProj]
Re: Сдвиг слоев
Добавлено: 03 мар 2017, 11:09
lam
Игорь Белов писал(а):
4. Текстовым редактором заменим CoordSys сразу во всех MIF в папке.
Если можно, подробнее этот пункт, какой именно текстовый редактор и функцию пакетной замены в нем, Вы использовали?
Спасибо!
Re: Сдвиг слоев
Добавлено: 03 мар 2017, 11:47
Игорь Белов
Когда-то использовал MultiEdit, затем
jEdit,
sed… Хороших текстовых редакторов море.
P. S.
В jEdit быстрее всего нажать последовательно Ctrl-e Ctrl-d, или через меню [Поиск] → [Поиск в директории…]
В Emacs это делается так: M-x find-name-dired RET
Re: Сдвиг слоев
Добавлено: 03 мар 2017, 15:21
Slinger
Если всё в План-схеме (хотя и с проекциями тоже работает вроде бы) и неохота заморачиваться с проекциями, то можно сделать следующее:
1) загнать все таблицы в .mif/mid с помощью BatchTools
2) Открыть .mif (или .mif'ы) в текстовом редакторе и добавить строку
TRANSFORM 0, 0, Xshift, Yshift
где Xshift и Yshift - сдвиг по X и Y соответственно. Может быть и отрицательным. Нули в начале строки обязательны. Строку надо добавить до начала объявления объектов. То есть после объявления Delimiter или CoordSys
4) Обратно импортировать в .tab. Во время импорта произойдёт сдвиг. Разумеется, надо перед эти удостовериться, что сдвинутые координаты находятся в пределах границ карты, то бишь в пределах Bounds. В противном случае они все упрутся в невидимую стенку и останутся на одной линии
Строку CoordSys можно заменить любым текстовым редактором, имеющим возможность пакетной замены. А-ля Textpad. Либо воспользовать бинарно/текстовым вариантом редактора, а-ля 010editor, позволяющим писать небольшие макросы для таких задач
Re: Сдвиг слоев
Добавлено: 06 мар 2017, 09:34
egormishin
Спасибо за подсказки, нашел утилиту для сдвига и не только "Re Calc"может кому пригодится главное ничего ненужно не куда конвертировать очень удобно! А вот для увеличения рабочей области наверное только ваши варианты.
Re: Сдвиг слоев
Добавлено: 13 мар 2017, 16:14
Cancer
Можно еще с помощью
"Инструментария для MapInfo". Мастер трансформации и пределы слоев сам подправит и объекты по толпе слоев перенесет:
https://youtu.be/LXzbMQfZcGg?t=471
Re: Сдвиг слоев
Добавлено: 14 мар 2017, 01:49
egormishin
Спасибо Cancer хороший вариант!