Совмещение узлов mapinfo

Тема в разделе "MapInfo", создана пользователем Mihail_Kadastr, 23 сен 2019.

  1. Mihail_Kadastr

    Mihail_Kadastr Форумчанин

    Ребят может знает кто как массово можно притянуть все узлы одного слоя к узлам другого слоя в заданном радиусе (0.1м, 0.09м и т.д.).
    Было выполнено зонирование территории и границы зон не сходятся с границами участков на КПТ. Каждый узел зоны отлетает от узла участка на КПТ на 1-7см.
    пример.png
     
  2. Valang

    Valang Форумчанин

    Поискать утилиты, можно здесь: http://glab2007.narod.ru/d/mu.html
    Можно написать свою, если не найдешь. Mapbasic знать не обязательно: это можно написать в любом языке программирования, а обрабатывать файлы Mif - это обычный текстовый формат.
     
  3. Mihail_Kadastr

    Mihail_Kadastr Форумчанин

    Там уже смотрел, не нашел программ с подобной функцией. А самому написать что-то мозгов не хватает.
     
  4. Valang

    Valang Форумчанин

    Ну а чё там писать. Экспортируешь обе таблицы в Mif. Загружаешь исходную - к которой ты будешь приводить вторую. Помещаешь в массив. Грузишь вторую, то же в массив. Задаешь в каких пределах: типа как на прореживание лишних точек. Затем в циклах сравниваешь
    fs= SQR(dX^2+dY^2). Сравнивать нужно не все строки, а только координаты точек. Они как правило располагаются после ключевых слов: Pline, Line, Region и Point. Если у тебя все объекты площадные, то проверяешь только секции Region. Если расхождение в заданных пределах, меняешь на координаты из исходной таблицы. Все остальное без изменений.
    Я когда-то писал нечто подобное, но там насколько я помню, это относилось не к разным таблицам, а чтобы привести в соответствие табличные координаты из Mid к их положению из Mif, т.е. к графике. Но это было давно, я уже точно и не помню, что у меня там есть. Если есть желание посмотри, вот ссылка на программу: https://www.dropbox.com/s/62w1nahb1srb5mu/Mif_Kat_v2.41.rar?dl=0
    См. хелп, раздел Операции с Mif/Mid
     
    Последнее редактирование: 24 сен 2019
  5. Mihail_Kadastr

    Mihail_Kadastr Форумчанин

    Спасибо, пойду изучать. т.к. совмещать узлы в ручную - не вариант, больше 500000 узлов примерно. Логически выглядит просто (у меня одни площадные объекты), но реализовать не хватает ума.
     
  6. trir

    trir Форумчанин

    а не проще нарезать участки по зонам, а потом объеденить?
    я бы загрузил данные в БД и дальше sql'ем
    или использовал mitab
     
  7. Valang

    Valang Форумчанин

    Я посмотрел свою прогу, у меня близкое там есть, но не совсем то. Ты мне пришли фрагменты этих таблиц, я добавлю. У меня на домашнем компьютере ни Mapinfo ни Автокадов нет и ставить я их не хочу. Выдели одни и те же участки в обоих таблицах и сделай экспорт в Mif. Вот их и пришли для отладки.
     
  8. Mihail_Kadastr

    Mihail_Kadastr Форумчанин

    Вот подготовил mif
     

    Вложения:

    • тест.zip
      Размер файла:
      13,7 КБ
      Просмотров:
      4
  9. Valang

    Valang Форумчанин

    Я скачал и посмотрел Mif (tab не в чем смотреть, имей в виду). Там в регионах разное кол-во точек. Но я так понял, что это не важно, т.к. точки в них одни те же. Правильно? Проверил первую попавшую точку, сдвинута сантиметров на 5. Хотелось бы кое-что уточнить: кол-во десятичных знаков в координатах везде разное:
    4213550.45 484807.9001
    4213474.9 484856.5499
    4212455.35 484143.26
    4213416.05 484852.7
    Я думаю, что их нужно привести к одному виду:
    4213550.45 484807.90
    4213474.90 484856.55
    4212455.35 484143.26
    4213416.05 484852.70
    Так пойдет, или оставить как есть? Если оставить как есть, то первая таблица останется без изменений. Хотя думаю 0.0001 ничего не даст.
     
    Последнее редактирование: 24 сен 2019
    Mihail_Kadastr нравится это.
  10. -=13=-

    -=13=- Форумчанин

    А если экспортировать в mif/mid или шэйп и попробовать другими ГИС-системами?
     
  11. Mihail_Kadastr

    Mihail_Kadastr Форумчанин

    так пойдет, не знаю почему 2я таблица выгрузилась с 4мя знаками после запятой.
     
  12. trir

    trir Форумчанин

    bounds
     
  13. Mihail_Kadastr

    Mihail_Kadastr Форумчанин

    Пределы одинаковые выставлены.
     
  14. Valang

    Valang Форумчанин

    Уточнить хочу: точки из второй таблицы в первой все присутствуют? Ведь тогда получится, что часть точек сдвинется, причем на разные величины, а часть останется на прежнем месте. Фигня какая-то.
     
    Mihail_Kadastr нравится это.
  15. Mihail_Kadastr

    Mihail_Kadastr Форумчанин

    в таблице "Зона" - территориальные зоны, только часть границ у них совпадает с земельными участками из таблицы "зу_кпт". Соответственно разное колличество узлов.
    --- Сообщения объединены, 24 сен 2019, Оригинальное время сообщения: 24 сен 2019 ---
    только часть границы зоны (таблица Зона) должна быть совмещена с земельными участками(зу_кпт). Синяя - граница земельного участка
    Безымянный2.png
     
  16. Valang

    Valang Форумчанин

    Ясно, притянутся только общие точки. А контроль основной таблицы, в данном случае "Зона" делать значить не нужно? В смысле что в ней одна и та же точка не может быть в разных вариантах (с отличающимися координатами)?
     
    Mihail_Kadastr нравится это.
  17. Valang

    Valang Форумчанин

    Я сделал, скачай проверь. Отпишешься. Ссылка: https://www.dropbox.com/s/62w1nahb1srb5mu/Mif_Kat_v2.43.rar?dl=0
    См. Меню- Операции с Mif/Mid - Совмещение границ двух таблиц.
    Новый файл с приставкой в конце _Edit. Я не стал здесь мудрить, чтобы не затирать исходный, так что имей в виду.
     
    Mihail_Kadastr нравится это.
  18. Valang

    Valang Форумчанин

    -=13=-, FlaShTroN и Mihail_Kadastr нравится это.
  19. Mihail_Kadastr

    Mihail_Kadastr Форумчанин

    Прога насчитала 123тыс точек, пока выполняется. Для 1й зоны из примера все сработало
    --- Сообщения объединены, 25 сен 2019, Оригинальное время сообщения: 25 сен 2019 ---
    Программа точно может обрабатывать большое кол-во точек)? Само окошко "Не отвечает", но процесс вроде грузит ЦП
    Безымянный.png
     
  20. Valang

    Valang Форумчанин

    Что именно не сработало? Могло не сработать из-за того, что переменной не хватило. Если у тебя по 100 с лишним тысяч точек, то Integer- это не белее 65 тыс. Нужно их переделать в Long - этот тип до 2 млрд. Щас посмотрю.
    --- Сообщения объединены, 25 сен 2019, Оригинальное время сообщения: 25 сен 2019 ---
    Возможно не хватает памяти: из первой таблицы в память грузятся только координаты, а вторая в память грузится вся полностью.
    Можно сделать, чтобы вторая таблица при загрузке с диска сразу исправлялась и писалась на диск.
    В общем выщли мне эти два Mif (только Mif, другие не нужно) в архиве на valang@mail.ru
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление