Графика есть - записей нет
-
- Активный участник
- Сообщения: 232
- Зарегистрирован: 10 мар 2012, 07:59
- Репутация: 4
- Откуда: Новосибирск
Графика есть - записей нет
Прошу помощи, как можно срочнее. имеется слой реки, в котором в виде записей числится около 53 объектов, в графике же содержится намного больше. Часть графических объектов не содержит сопоставленной семантики (записи в таблице). То есть существует на птичъих правах. Упакуем таблицу и все пропадет. Копировать бесхозные объекты нельзя, операции пространственные проводить с ними нельзя, только редактировать и все. Как их можно восстановить в нормальные объекты.
- Вложения
-
- реки.rar
- (132.13 КБ) 496 скачиваний
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Графика есть - записей нет
Посмотрите, может, устроит.
- Вложения
-
- реки_2.zip
- (111.96 КБ) 470 скачиваний
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: Графика есть - записей нет
Пофиксил, попробуйте.
- Вложения
-
- реки_fixed.rar
- (131.99 КБ) 447 скачиваний
-
- Активный участник
- Сообщения: 232
- Зарегистрирован: 10 мар 2012, 07:59
- Репутация: 4
- Откуда: Новосибирск
Re: Графика есть - записей нет
ErnieBoyd, Slinger огромное спасибо! Прошу описать как решался данный вопрос. В какую сторону копать?
-
- Активный участник
- Сообщения: 232
- Зарегистрирован: 10 мар 2012, 07:59
- Репутация: 4
- Откуда: Новосибирск
Re: Графика есть - записей нет
ErnieBoyd - почему графика стала отличаться от исходной?
-
- Активный участник
- Сообщения: 216
- Зарегистрирован: 21 окт 2009, 13:29
- Репутация: 28
- Откуда: Новосибирск
Re: Графика есть - записей нет
Попробовал пофиксить, результат такой же как у Slinger - 441 запись. (в окне списка просто добавил записей до 1000, а потом удалил объекты без графики).
ErnieBoyd, как вы делали?
ErnieBoyd, как вы делали?
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Графика есть - записей нет
Спасибо, Sibit! Не думал, что простое добавление пустых записей сработает.
А мы не умеем идти лёгким путём
Я превратил слой в векторную картинку, а потом импортировал обратно.
В итоге моё кунг-фу привело к потере всего - мелких объектов, семантики, географии, геометрии, стилей.
А мы не умеем идти лёгким путём
Я превратил слой в векторную картинку, а потом импортировал обратно.
В итоге моё кунг-фу привело к потере всего - мелких объектов, семантики, географии, геометрии, стилей.
- В остатке 463 разгруппированные линии из исходных 476.
- Семантика потеряна безвозвратно.
- Для восстановления геопривязки использовались кресты, появившиеся в углах.
- Искажение геометрии отлично видно при зумировании.
- Из стилей сохранился только цвет тех линий, что были истинными Blue.
The purpose of computing is insight, not numbers
-
- Активный участник
- Сообщения: 216
- Зарегистрирован: 21 окт 2009, 13:29
- Репутация: 28
- Откуда: Новосибирск
Re: Графика есть - записей нет
А можно этот момент подробнее? А то, я совсем не понимаю, что было сделано(сам попробовал импорт в шейп, но не вышло).ErnieBoyd писал(а): Я превратил слой в векторную картинку, а потом импортировал обратно.
Там скорей всего как-то грохнули часть файла с данными, индекс и Map сохранился как есть(или подсунули DAT от другой таблицы). Отсюда такой эффект. Соответственно семантику восстановить невозможно.
-
- Активный участник
- Сообщения: 232
- Зарегистрирован: 10 мар 2012, 07:59
- Репутация: 4
- Откуда: Новосибирск
Re: Графика есть - записей нет
Да, видимо так и случилось. пользователи ко мне уже пришли с проблемой, стал разбираться а тут такое, полез в файлы вижу что висят временные файлы tma, tin tda а никто их не редактирует. Смотрю файл графика есть а связка в индексе отсутствует. Добавлял записи через таблицу но пораскинув умишком решил что у них и индекс будет свой и не привязан к графике и не смог пока больше ничего придумать, решил обратится сюда.
Векторизацию же заново (хоть и по векторной картинке) я даже и не рассматривал, однако тоже как вариант решения проблемы.
Векторизацию же заново (хоть и по векторной картинке) я даже и не рассматривал, однако тоже как вариант решения проблемы.
- Игорь Белов
- Гуру
- Сообщения: 2229
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1501
- Откуда: Казань
Re: Графика есть - записей нет
В моих словах "превратил в картинку" нет преувеличения, я низко пал, встав на путь изврата. Если действительно интересно, вот этот б-гомерзкий способ.Sibit писал(а):А можно этот момент подробнее? А то, я совсем не понимаю, что было сделаноErnieBoyd писал(а): Я превратил слой в векторную картинку, а потом импортировал обратно.
- Положил окно карты на лист отчёта. Если бы были пунктирные или ещё какие хитрые линии, сначала отобразил бы слой единообразно.
- Распечатал отчёт на виртуальный PDF-принтер.
- Экспорировал PDF в DXF.
- Импортировал DXF в MapInfo TAB с трансформированием координат.
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: Графика есть - записей нет
Я поступил так же, как и описывал в трёх предыдущих темах по MI, у авторов которых были аналогичные ошибки:
1) Определил количество объектов в таблице MI. Так как файл id содержит в себе адреса (оффсеты/смещения) указателей связи семантики .dat и графики .map, а каждый указатель состоит из 4-х байт, то чтобы определить количество объектов, нужно разделить размер файла .id в байтах на 4. Получим количество объектов.
2) Открываем файл .dat в любом hex-редакторе. В .dat файле в смещениях 0x04-0x07 прописано количество объектов.
В исходном dat файле было прописано 36 объектов (36 в шестнадцатеричной системе счисления = 54 в десятеричной). Мне нужно было прописать 441 объект, то есть 01B9 в hex системе счисления. А поскольку в 95% процентах любого файла на ПК используется метод записи байт little endian, то есть старший бит должен быть справа, то я записываю это число справа налево, то есть "B9 01". Тем самым я сказал MI, чтобы он отобразил мне 441 запись в списке таблицы. Если я задам число, большее чем 441, то первые 441 объект будут связаны с графикой, а остальные будут просто пустые строки.
Собсна всё. MI добавил недостающие строчки, заполнил их какой-то неведомой семантикой, непонятно откуда взявшейся (её в dat нет), автоматически связал её с графикой из .map через указатели в id. И всё
1) Определил количество объектов в таблице MI. Так как файл id содержит в себе адреса (оффсеты/смещения) указателей связи семантики .dat и графики .map, а каждый указатель состоит из 4-х байт, то чтобы определить количество объектов, нужно разделить размер файла .id в байтах на 4. Получим количество объектов.
2) Открываем файл .dat в любом hex-редакторе. В .dat файле в смещениях 0x04-0x07 прописано количество объектов.
В исходном dat файле было прописано 36 объектов (36 в шестнадцатеричной системе счисления = 54 в десятеричной). Мне нужно было прописать 441 объект, то есть 01B9 в hex системе счисления. А поскольку в 95% процентах любого файла на ПК используется метод записи байт little endian, то есть старший бит должен быть справа, то я записываю это число справа налево, то есть "B9 01". Тем самым я сказал MI, чтобы он отобразил мне 441 запись в списке таблицы. Если я задам число, большее чем 441, то первые 441 объект будут связаны с графикой, а остальные будут просто пустые строки.
Собсна всё. MI добавил недостающие строчки, заполнил их какой-то неведомой семантикой, непонятно откуда взявшейся (её в dat нет), автоматически связал её с графикой из .map через указатели в id. И всё
Последний раз редактировалось Slinger 25 мар 2015, 12:10, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 3058
- Зарегистрирован: 19 май 2010, 19:44
- Репутация: 189
Re: Графика есть - записей нет
Последнее сообщение автору можно оформить в виде статьи Кому-то может быть очень полезной информация...
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Графика есть - записей нет
Slinger, присоединяюсь к просьбе накидать короткую статью по теме. Очень полезная информация и не для всех очевидная.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: Графика есть - записей нет
Писать по сути не о чем. В идеале необходимо разобрать побайтово ещё и .map файл, но поскольку формат бинарный и закрытый, и Pitney Bowes никакого объяснения файлу не давали, то разбирать руками данный формат - задача долгая и неблагодарная.
Но, думаю, что-нибудь накатаю
Но, думаю, что-нибудь накатаю
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Графика есть - записей нет
Хм.. Я не и не знал, что это так актуально и востребовано.
Для "пострадавших" прилагаю программу на VB 6.0, которая расковыривает битый файл Mapinfo. Вернее два файла - DAT и MAP. Каждый из них сохраняет в отдельный файл, связанный по уникальному номеру (RowID) - графика отдельно, атрибутика отдельно. Связано с тем, что в сбойном файле теряется однозначность связей - образуются связи многие-к-многим. Автоматически разобраться какие данные правильные, а какие нет - невозможно. От того и две таблицы.
myfolder.ru/files/43313356
Утилита предоставляется "как есть" в самом худшем проявлении этого принципа - сделал и забыл, а описание не создал или потерял.
Я ее создал по нужде в 2011 году, по результатам анализа всего, что нашел в интернете - утилиты RECOVERY 1999 года(?), неофициального описания форматов MAP и DAT(он же DBF) + ID (он образует связи MAP <-> DAT), утилиты MITAB и еще чего то.
Для работы инсталляция не нужна, нужен только файл Recover2011.exe и стандартные библиотеки для запуска приложений на VB 6.0. Если их нет на компьютере, то инсталляция их установит, хотя где то на сайте в статьях (?) я видел набор файлов для запуска VB 6.
PS Файл положил на первый попавшийся сервер. Могу переложить куда укажите.
Для "пострадавших" прилагаю программу на VB 6.0, которая расковыривает битый файл Mapinfo. Вернее два файла - DAT и MAP. Каждый из них сохраняет в отдельный файл, связанный по уникальному номеру (RowID) - графика отдельно, атрибутика отдельно. Связано с тем, что в сбойном файле теряется однозначность связей - образуются связи многие-к-многим. Автоматически разобраться какие данные правильные, а какие нет - невозможно. От того и две таблицы.
myfolder.ru/files/43313356
Утилита предоставляется "как есть" в самом худшем проявлении этого принципа - сделал и забыл, а описание не создал или потерял.
Я ее создал по нужде в 2011 году, по результатам анализа всего, что нашел в интернете - утилиты RECOVERY 1999 года(?), неофициального описания форматов MAP и DAT(он же DBF) + ID (он образует связи MAP <-> DAT), утилиты MITAB и еще чего то.
Для работы инсталляция не нужна, нужен только файл Recover2011.exe и стандартные библиотеки для запуска приложений на VB 6.0. Если их нет на компьютере, то инсталляция их установит, хотя где то на сайте в статьях (?) я видел набор файлов для запуска VB 6.
PS Файл положил на первый попавшийся сервер. Могу переложить куда укажите.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей