Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
m-inka
Зарегистрирован: 08.07.2008 Сообщения: 15 Откуда: Красноярск
|
Добавлено: Пт Фев 27, 2009 6:48 am Заголовок сообщения: удаление дублирующихся объектов |
|
|
Здравствуйте! Есть таблица MapInfo с множеством точечных (к примеру) объектов, некоторые из которых накладываются друг на друга, т.е. их координаты совпадают. Каким образом можно удалить дублирующие объекты из окна карты? |
|
Вернуться к началу |
|
|
Olga_@@@
Зарегистрирован: 24.02.2009 Сообщения: 10
|
Добавлено: Пт Фев 27, 2009 8:11 am Заголовок сообщения: |
|
|
Может быть подойдет программа Удалить дубли?
Подгружается из Каталога программ. |
|
Вернуться к началу |
|
|
m-inka
Зарегистрирован: 08.07.2008 Сообщения: 15 Откуда: Красноярск
|
Добавлено: Пт Фев 27, 2009 11:04 am Заголовок сообщения: |
|
|
Не подходит. Данная утилита работает со списком и удаляет дублирующиеся строки. Если же атрибутивные данные отсутствуют или не повторяются у объектов с идентичными координатами, утилита бесполезна |
|
Вернуться к началу |
|
|
Serj
Зарегистрирован: 25.08.2006 Сообщения: 50
|
Добавлено: Пт Фев 27, 2009 3:59 pm Заголовок сообщения: |
|
|
Допустим, имя таблицы tName
В ней заводим (если нет) три колонки с ключом и координатами. Например Id, X, Y
Обновляем эти колонки Id по RowId, X и Y понятно координатами...
Дальше запрос:
Select * From tName Group By X, Y Into tDouble
Потом еще один:
Select * From tName Where Not Id In (Select Id From tDouble)
Жмем Delete (слой должен быть редактируемым), и будет Счастье...
P.S. Созданные колонки, если не нужны в дальнейшем удаляем! |
|
Вернуться к началу |
|
|
lalex
Зарегистрирован: 16.05.2007 Сообщения: 12
|
Добавлено: Ср Апр 08, 2009 10:53 am Заголовок сообщения: |
|
|
Отличный способ, даже в Arc так и делаем. Добавил ответ в гео-FAQ (раздел по мапинфе)
http://www.geofaq.ru/pbylevels.php?level=0&cat=mi
Свои пять копеек - чтобы отличить не точно совпадающие точки, можно ставить условие не точного совпадения X1=X2, а X1-X2 < dX, т.е. с неким допуском. При этом для выиска дубликатов используется как бы прямоугольное окно размером dX на dY. Если треба круглое, то условие придется усложнить с учетом теоремы пифагора. Общий принцип, тем не менее, остается такой как предложил Serg: все точки в некоей окрестности группируются к центру, превращаются в одну. Атрибуты при этом могут быть неодинаковы, тогда они должны как-то осредняться-аггретироваться.
В общем-то если массив большой, удобно для таких дел выгрузить XY в любую РБД, в Access, там анализ идет заметно быстрее. |
|
Вернуться к началу |
|
|
Online
Зарегистрирован: 10.06.2008 Сообщения: 26
|
Добавлено: Чт Окт 28, 2010 9:34 am Заголовок сообщения: |
|
|
А как выбрать все повторяющиеся полилинии по аналогии? Что для них взять в качестве X и Y? Ведь координаты описывающего прямоугольника, центр, число узлов, длина и ряд других параметров могут совпадать для разных полилиний. |
|
Вернуться к началу |
|
|
Arhara
Зарегистрирован: 18.02.2009 Сообщения: 400 Откуда: Moscow, RF
|
Добавлено: Чт Ноя 11, 2010 10:00 pm Заголовок сообщения: |
|
|
Online писал(а): |
А как выбрать все повторяющиеся полилинии по аналогии? Что для них взять в качестве X и Y? Ведь координаты описывающего прямоугольника, центр, число узлов, длина и ряд других параметров могут совпадать для разных полилиний. |
в жизни, если совпали больше 4-х расчетных параметров, то что бы полилинии были разными надо очень постараться.
хотите идеального решения - придется писать обработчик на MapBasic или анализировать экспорт в MIF/MID |
|
Вернуться к началу |
|
|
Highvoltage
Зарегистрирован: 27.01.2011 Сообщения: 12
|
Добавлено: Вт Фев 01, 2011 12:53 pm Заголовок сообщения: |
|
|
Уважаемые, а не подскажете как работает эта утилита chk_dup.MBX?
Выбираю в ней нужный слой, все записи и т.д. А в итоге в логе проверки написано что проверена 1 запись. Ошибок соотв. везде 0.
На понял честно говоря как она должна работать |
|
Вернуться к началу |
|
|
|