Страница 1 из 2

Автоматическая замена объектов на карте

Добавлено: 18 янв 2010, 12:48
arzobispo
Всем привет!
Возникла такая проблема, есть карта, и когда ее рисовали, то допустили ошибку (объект имеет не правильную форму, и это было не проконтролировано, и методом копирования/вставить много нарисовали однотипных объектов :( ) Теперь вот надо заменить эти все объекты на другой. Можно ли это сделать автоматически?
Например, выбираю объект квадрат и хочу заменить его на треугольник во всех местах карты, где был квадрат, т.е. чтобы треугольник стоял на том же месте, если координаты поедут, то потом вручную доправлю.

Re: Автоматическая замена объектов на карте

Добавлено: 18 янв 2010, 17:46
Boris
самое простое - это сделать объект в виде условного знака.
если же необходимо именно заменить один площадной объект на другой - то тут без программирования не обойтись.

Re: Автоматическая замена объектов на карте

Добавлено: 18 янв 2010, 19:02
Olga_@@@
Есть вероятность, что это можно сделать, если для выполнения этой операции перевести данные в AutoCAD Map (Civil).
Если очень нужно, выложите TAB.
Как это сделать в MapInfo, увы, не знаю, т.к. очень мало в нем работаю.

Re: Автоматическая замена объектов на карте

Добавлено: 18 янв 2010, 19:44
Tansu
arzobispo писал(а):Всем привет!
Возникла такая проблема, есть карта, и когда ее рисовали, то допустили ошибку (объект имеет не правильную форму, и это было не проконтролировано, и методом копирования/вставить много нарисовали однотипных объектов :( ) Теперь вот надо заменить эти все объекты на другой. Можно ли это сделать автоматически?
Например, выбираю объект квадрат и хочу заменить его на треугольник во всех местах карты, где был квадрат, т.е. чтобы треугольник стоял на том же месте, если координаты поедут, то потом вручную доправлю.
Пишу для сведения. Функцию автоматической замены, редактирования, удаления геометрических объектов с пространственными свойствами для множества объектов можно осуществить на русском Netcad, без каких-либо усилий по программированию.

Re: Автоматическая замена объектов на карте

Добавлено: 19 янв 2010, 06:10
arzobispo
В NetCAD грузить .tab файл или надо предварительно перевести в какой-нибудь другой формат? А если не затруднит, можете прислать (написать) порядок жмяканий :)

Re: Автоматическая замена объектов на карте

Добавлено: 19 янв 2010, 11:13
Tansu
arzobispo писал(а):В NetCAD грузить .tab файл или надо предварительно перевести в какой-нибудь другой формат? А если не затруднит, можете прислать (написать) порядок жмяканий :)
:oops:

Я неправильно поняла вопрос или, скорее всего, оказалась некомпетента в данном вопросе.Сейчас проконсультировалась у техников.

Прошу тысячу извинений. Все! Больше хвастаться не буду. Это меня уже понесло от глупости своей. Занимаясь рекламой, уже привыкаешь сочинять и приписывать то, чего нет на самом деле и даже не поддается логике......

Автоматическая замена объектов производится для символов и текстовых записей на экране.

Для геометрических объектов существует специальная правка по каждому объекту. Редактирование происходит согласно геометрии/топологии отдельно для каждого объекта. Но удалить множество геометрических объектов можно одним махом.(Ломать не строить).

Дальше, что касается Netcad пожалуйства перейдите в тему «Геосэмпл Netcad». Я там напишу, если нужна какая-либо информация.

viewtopic.php?f=2&t=4286


ЗЫ. :D Все, наверно, замечтались о фантастиш...

Re: Автоматическая замена объектов на карте

Добавлено: 19 янв 2010, 17:39
Olga_@@@
Вариант под AutoCAD Map:
1. Импорт Tab
2. Создать центроиды "квадратов" (таблицы перенесутся на центроиды)
3. Экспорт центроидов в mif/mid
4. Один из "квадратов" вместе с центроидом скопировать в точку 0,0,0. Создать поверх него новую фигуру и из нее - новый блок "треугольник". Точку вставки блока назначить таким образом, чтобы она совпадала с точкой 0,0,0.
5. Обратный импорт mif/mid с заменой точек на блоки.
6. Взорвать блоки
7. Экспорт новых "треугольников" в TAB
8. Слияние таблиц (вернуть на место таблицы от "квадратов", если в них содержалась ценная информация)

п.8 можно тоже выполнить в AutoCAD Map, но в MapInfo удобнее

PS .. и не потерять СК при всех этих маневрах :D

Re: Автоматическая замена объектов на карте

Добавлено: 19 янв 2010, 19:15
Boris
а что такое блоки?

Re: Автоматическая замена объектов на карте

Добавлено: 20 янв 2010, 06:06
arzobispo
Может подразумевается, что [блоки] = [группы объектов]?

Re: Автоматическая замена объектов на карте

Добавлено: 20 янв 2010, 07:57
Boris
Видимо весь фокус в п.5. В замене точек на блоки.
Что AutoCAD Map позволяет указать, что будет точкой при экспорте?

Re: Автоматическая замена объектов на карте

Добавлено: 20 янв 2010, 08:33
Boris
я бы предложил такой путь:
1. замена объектов на центроиды
2. экспорт в MIF
3. замена строчек вида

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

POINT x y
[ SYMBOL (shape, color, size)]
на строчки вида

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

MULTIPOINT num_points
x1 y1 x2 y2 x3 y3 ...
[ SYMBOL (shape, color, size)]
т.е.

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

POINT 0 0
на

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

MULTIPOINT 3 [i]разрыв строки[/i]
0 0
4. вот тут надо использовать что-то, что умеет считать. я бы взял Excel (или Access), что бы привести 0 0 к виду
-cos60° -sin60° cos60° -sin60 cos60° sin60°
5. Сохранить измененный текст с расширением MIF
6. Импорт этого MIF в TAB со старым MID - пусть будет таблицей TAB2
7. создать новую таблицу со структурой старой = TAB3. пусть в обоих будет поле с уникальным номером - ID1
8. выделить все объекты в полученном из MIF TAB'е
9. в окошке MapBasic выполнить команду:

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

Create Object As ConvexHull From TAB2 Into Table TAB3 data id1=id1
10. перенести объекты из TAB3 в TAB2 (заменой) по связи id1=id1 или атрибутивные данные из TAB2 в TAB3 - это дело вкуса.
---
Все дело в том, что запись объекта MULTIPOINT позволяет задавать координаты одной строкой, команда ConvexHull оконтуривает объект минимальным многоугольником. Для трех точек - это всегда треугольник :)

Re: Автоматическая замена объектов на карте

Добавлено: 20 янв 2010, 10:14
Tansu
Olga_@@@ писал(а):Вариант под AutoCAD Map:
1. Импорт Tab
2. Создать центроиды "квадратов" (таблицы перенесутся на центроиды)
3. Экспорт центроидов в mif/mid
4. Один из "квадратов" вместе с центроидом скопировать в точку 0,0,0. Создать поверх него новую фигуру и из нее - новый блок "треугольник". Точку вставки блока назначить таким образом, чтобы она совпадала с точкой 0,0,0.
5. Обратный импорт mif/mid с заменой точек на блоки.
6. Взорвать блоки
7. Экспорт новых "треугольников" в TAB
8. Слияние таблиц (вернуть на место таблицы от "квадратов", если в них содержалась ценная информация)

п.8 можно тоже выполнить в AutoCAD Map, но в MapInfo удобнее

PS .. и не потерять СК при всех этих маневрах :D
1.Такая последовательность шагов делается для какого-то множества совершенно одинаковых геометрических объектов или же все-таки для каждого объекта отдельно?

2.Если для группы множества объектов, то каким образом программа распознает эти объекты: по геометрическим параметрам или же по позиционности(координатам)?

3.Если операция производится для каждого отдельного объекта, то в чем суть автоматизации?

Re: Автоматическая замена объектов на карте

Добавлено: 20 янв 2010, 10:29
Tansu
arzobispo писал(а):Всем привет!
Возникла такая проблема, есть карта, и когда ее рисовали, то допустили ошибку (объект имеет не правильную форму, и это было не проконтролировано, и методом копирования/вставить много нарисовали однотипных объектов :( ) Теперь вот надо заменить эти все объекты на другой. Можно ли это сделать автоматически?
Например, выбираю объект квадрат и хочу заменить его на треугольник во всех местах карты, где был квадрат, т.е. чтобы треугольник стоял на том же месте, если координаты поедут, то потом вручную доправлю.
Все-таки у меня этот вопрос остался в голове. Вот мне интересно, а какой объект Вы хотели менять? Вот если бы Вы пояснили бы, применив атрибутивность к своим объектам. Так как менять геометрию одного объекта, если это какое-либо сооружение это одно, а вот менять атрибут в виде прямоугольника, отмечающий позиционность N-го объекта на атрибут в виде треугольника это совсем другое. Тут как раз будут задействованы, как было сказано ранее, операции над блоками или символами.

Re: Автоматическая замена объектов на карте

Добавлено: 20 янв 2010, 11:43
Olga_@@@
1.Такая последовательность шагов делается для какого-то множества совершенно одинаковых геометрических объектов или же все-таки для каждого объекта отдельно?
Конечно для множества. :D
Распознавать он может по всякому, в том числе и по семантике, но в вашем случае это не требуется.
Тут достаточно в каждую точку (центроид) вставить новый блок.

PS еще вспомнила.. есть lisp для вставки блоков по точкам, так что в простых случаях, когда не требуется распознание по семантике, можно обойтись прямой заменой без экспорта и обратного импорта mid/mif

Re: Автоматическая замена объектов на карте

Добавлено: 20 янв 2010, 12:12
Olga_@@@
Может подразумевается, что [блоки] = [группы объектов]?
в общем случае это верно, но блок не всегда "группа объектов". Блок может содержать и один графический объект (примитив) и не содержать его вообще. Может содержать атрибутивную информацию и вообще состоять только из атрибута и точки вставки. Атрибут можно оставить незаполненным, тогда у вас будет "блок-невидимка" :D (видимым об будет, только если атрибутивная информация внесена). Атрибутом может быть пустое, числовое или текстовое значение или связь с полем базы данных.

В вашем конкретном случае достаточно чтобы блок состоял из одного графического примитива "треугольник" с точкой вставки совпадающей с центроидом фигуры и имеющей координаты 0,0,0