Подскажите, пожалуйста, как определить площади отдельных выделов, входящих в полигон? Имеются TAB лесничества, надо делать отвод и определять какие выдела и квартала попадают в отвод и сколько площадь каждого. Делала при помощи SQL-запроса, получилось только выдела и их целую площадь выбрать, а мне надо только площадь, которая попадает в полигон? Очень необходимо, т.к. на работе каждый день это необходимо, приходится каждый раз разрезать объекты, а это не очень удобно.
Ну если делаете полигоном, то в чем проблема? Обвели нужный контур, щелкнули 2 раза на обведенный контур - получили площадь контура
Площадь контура, целиком, а мне надо что бы отдельно показывалась площадь (смотрите на картинку) болота и лесных земель, которые входят в полигон.
Думаю, что без программирования здесь не обойтись. В целом это может выглядеть так: выделяете полигон, нажимаете кнопку, получаете результат. Ну а если конкретно, то сразу возникают вопросы: - все выделы хранятся в одном слое (имя слоя всегда одно и то же или его надо выбирать) - структура этого слоя (имена и типы полей) - вид результата, например тип контура; площадь (кв. м, га, …) - вывод результата (в окно сообщений, в файл, …)
Да, все выдела входят в одну таблицу, выглядит она так: Результат, в идеале, должен быть в виде таблицы, в которой указан квартал, выдел и площадь, которая (от общей площади) входит в полигон, в га до 0.0001ед. И чтобы результаты сразу выводились в эксель (ну или хотя бы таблица , которая экспортировалась в эксель). Я очень долека от программирования, поэтому буду очень признательна.
Программа запускается, но не считает результаты: у меня появились вопросы: 1. Откуда взять табл. Afrea? (Я просто открыла ее из вашего примера.); 2. Полигон, который я строю, должен быть в косметике или в сохраненном слое? 3. Таблица, на которой выдела, всегда должна называться "Угодья"? Буду ждать ответы.
По порядку: Таблица fArea это таблица для размещения результатов. Вы можете создать свою, с новым именем (в этом случае в файле Layers.txt имя fAreaнужно заменить на выбранное вами имя), только структура таблицы должна остаться прежней. Полигон может размещаться в любом слое кроме слоя с выделами. В принципе его можно размещать и там, но тогда в результатах будет появляться дополнительная строка с площадью этого полигона. Аналогично пункту 1. * Не понял что означает «не считает результаты». Вы писали «определить площади отдельных выделов, входящих в полигон», именно это и выполняется, т.е. площади выделов попадающих в полигон помещаются в таблицу результатов. Возможно, вы имели в виду, что результаты нужно просуммировать по какому-то признаку (порода, группа, категория)? ** Для размещения таблицы результатов в Excel достаточно использовать технику Копировать/Вставить (При активном окне списка выполнить Запрос/Выбрать полностью, далее Правка/Копировать. На листе Excel выполнить Правка/Вставить.).
Спасибо огромное уже разобралась , очень помогли мне, теперь процентов 50% моего рабочего времени освободилось. (раньше приходилось постоянно заниматься рутинной работой по разрезанию полигонов, выписыванию площадей на листок, а потом вбиванием их в эксель - а объекты иногда по 60 100 га).
hisma86, thegeo, Здравствуйте. Я также столкнулся с проблемой отвода площадей в MAPINFO. Я так понял, что проблема была решена. Решил и я воспользоваться предложенным решением. Но к сожалению ссылка http://dfiles.ru/files/arqv943ti не привела меня к необходимому файлу. Пожалуйста выложите снова действующую ссылку. Увы, самостоятельно решить обозначенную проблему поднятой в данном отвлетвлении форума не смогу. Ибо я не только не разбираюсь в программировании, но мало знаком с программным продуктом. С данной проблемой сталкиваюсь ежедневно, ибо работаю в ПТО лесозаготовительной компании. Помогите пожалуйста.....
thegeo, Artixz, Здравствуйте. Я также столкнулся с обозначенной проблемой. Файл по ссылке отсутствует. Помогите...повторите ссылку пожалуйста.
Никакого программирования не нужно в MapInfo это делается быстро, надо "разрезать" ваш отвод по границам выделов (выделяете свой объект- объект-сделать изменяемым-выделяете выделы(курсором)- объект- разрезать). Дальше Таблица(на панели инстументов) - обновить- выбираете наименование слоя- дальше(нижняя строка) -выбираете столбец-с условием(справа выбираете функцию aria, только поменяйте на м, по умолчанию стоит км)- и нажмите ок, и MapInfo посчитает площадь полигонов. Оффтоп (Move your mouse to the spoiler area to reveal the content) Пишу по памяти, если не получится сбросьте файлы, посчитаю, дело 2 минут
Спасибо за помощь. С таким подходом я буду быстро обрабатывать лесосеки, тем самым буду обладать свободным временем для изучения MAPINFO.
Спасибо большое. Вы правы - повезло! и не только в том, что Вы нашли файлик, но и в том что именно наткнулся на этот форум и на отзывчивых людей))). Честно сказать я не думал, что так оперативно получу помощь. --- Сообщения объединены, 25 авг 2016, Оригинальное время сообщения: 25 авг 2016 --- Большое спасибо. Теперь у меня есть два альтернативных способа решения поставленной задачи. Честно сказать я и на один то не рассчитывал)))))
Здравствуйте thegeo. Пользуюсь вовсю вашей наработкой. Но приходится подгонять свою таблицу под структуру Вашего программного кода. У меня родилась "наглая"))) идея изменить программный код под структуру своей таблицы. Уперлась идея в исходный код)))) Декомпелировать не могу))) не нашел проги. Но очень бы хотелось изменить программный код под свою структуру таблицы. Если это возможно скиньте ссылку на файл в формате md.
<p> </p><p><br /></p> --- Сообщения объединены, 5 окт 2016, Оригинальное время сообщения: 5 окт 2016 --- Здравствуйте. Спасибо Вам большое за первоначальный код. Не думал я что моя проблема приведет меня к изучению Visul Basic Помимо игр с вашим первоисточником теперь я в свободное время стал изучать программирование. По часу стараюсь каждый день уделять этому время, причем в рабочее время. От начальства держу в полном секрете частичную автоматизацию процесса обсчета лесосек.
Roman1979, Используемый в прилагаемом коде язык именуется как MapBasic и применим только в рамках MapInfo. Visual Basic это несколько другое и в настоящее время актуальна версия VisualBasic.NET. Для работы с MapBasic имеет смысл использовать MapBasic IDE (https://mustafaozcetin.wordpress.com/mapbasic/MapBasicIDE-En/). Будет также полезна информация в прилагаемом архиве.