Создание запроса в MapBasic

MapInfo, MapBasic
Ответить
Любаша
Новоприбывший
Сообщения: 3
Зарегистрирован: 13 май 2014, 09:26
Репутация: 0

Создание запроса в MapBasic

Сообщение Любаша » 13 май 2014, 09:37

Добрый день! Помогите. пожалуйста! В MapInfo никогда не работала. Дана карта лесов. Все лесничество разбито на квартала, и квартала соответсвенно поделены на выдела.У каждого выдела есть характеристика - страта.Задача состоит в следующем: нужно объединить выдела в каждом отдельном квартале по одинаковой страте, но только близлежащие выдела (т.е. соседние). И чтобы уже у каждого вновь полученного выдела суммировалась площадь. Я понимаю, что это нужно сделать через MapBasic, но как не знаю.Может меня кто-то сориентирует как это сделать.надеюсь понятно изложила поставленную задачу!Заранее всем спасибо за помощь!

Sibit
Активный участник
Сообщения: 216
Зарегистрирован: 21 окт 2009, 13:29
Репутация: 28
Откуда: Новосибирск

Re: Создание запроса в MapBasic

Сообщение Sibit » 13 май 2014, 10:49

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

PS А как вы это раньше делали? ведь не первый год создаются карты страт, как я понимаю.

Старый Йети
Активный участник
Сообщения: 170
Зарегистрирован: 06 дек 2011, 07:21
Репутация: 19
Откуда: г. Ухта, республика Коми

Re: Создание запроса в MapBasic

Сообщение Старый Йети » 13 май 2014, 10:59

Ну, по поводу объединения - это вам к запросам. В пределах одного квартала - не проблема. Ввести поля (номер квартала, тип страты) и объединять стандартными средствами (Руководство Вам в помощь). Вот только на счёт "ближайших" - таким образом не решить. :(
Удачи!
_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети

Любаша
Новоприбывший
Сообщения: 3
Зарегистрирован: 13 май 2014, 09:26
Репутация: 0

Re: Создание запроса в MapBasic

Сообщение Любаша » 13 май 2014, 11:04

Sibit писал(а): PS А как вы это раньше делали? ведь не первый год создаются карты страт, как я понимаю.

Дело в том, что я только перешла на новую работу и с этим неи сталкивалась. А до меня это все делали в ручную. Сами понимаете это очень трудоемко. :(

Любаша
Новоприбывший
Сообщения: 3
Зарегистрирован: 13 май 2014, 09:26
Репутация: 0

Re: Создание запроса в MapBasic

Сообщение Любаша » 13 май 2014, 11:06

Старый Йети писал(а):Ну, по поводу объединения - это вам к запросам. В пределах одного квартала - не проблема. Ввести поля (номер квартала, тип страты) и объединять стандартными средствами (Руководство Вам в помощь). Вот только на счёт "ближайших" - таким образом не решить. :(
Удачи!
Вот и именно, что нужно только ближайшие объединить.А можно ли это сделать с помощью графического оператора intersects?

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Создание запроса в MapBasic

Сообщение gamm » 13 май 2014, 11:21

строго говоря, нужно строить топологию, кто с кем рядом лежал. Мапинфо это умела раньше не очень хорошо, особенно если контура рисовали руками независимо, а не резали больший объект. Если топология у вас будет, то дальше все действительно можно решить запросами.

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

Re: Создание запроса в MapBasic

Сообщение nadiopt » 13 май 2014, 11:25

была бы арка или кугис, я бы все объединила запросом, не обращая внимания на соседство, а потом бы сделала разбиение составных объектов и пересекла кварталами. Не знаю, умеет ли такое мапа. Ну кугисом можно, и потом в таб обратно, вот только с топологией в мапе швах
ин гроссен фамилен нихт клювен клац клац

Sibit
Активный участник
Сообщения: 216
Зарегистрирован: 21 окт 2009, 13:29
Репутация: 28
Откуда: Новосибирск

Re: Создание запроса в MapBasic

Сообщение Sibit » 13 май 2014, 11:49

Любаша писал(а):Вот и именно, что нужно только ближайшие объединить.А можно ли это сделать с помощью графического оператора intersects?
Неа. Точнее, я не знаю как. У нас для этого спец инструмент сделан.
gamm писал(а):строго говоря, нужно строить топологию,
Да не нужно там ничего сложного. Просто объединить выдела в пределах квартала, и разбить их потом. Проблема в том что из коробки MapInfo это не умеет.
Последний раз редактировалось Sibit 13 май 2014, 13:56, всего редактировалось 1 раз.

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Создание запроса в MapBasic

Сообщение Boris » 13 май 2014, 13:02

напишите здесь свое определение слова "ближайший", и получите решение задачи 2-3 шага.
К слову сказать в Mapinfo с версии (9.хх? может и ранее, не приглядывался) появилась в меню "таблица" функция "группировка по полю", и делает она именно то, что запросил автор вопроса - группировку геометрии нескольких объектов в один по одному совпадающему полю. 4-я строка во 2-м подразделе меню "Таблица".
PS
Для решения задач с нарушенной топологией, при известных эмпирических данных, например, "ближайший" - это "пересекающий или расположенный на расстоянии 5 метров", существует запрос на пересечение буферов указанного размера.
В прочем, в стандартной мапинфо есть и инструмент "найди ближайшего соседа(-ей)".

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя