Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
b0br0ff
Зарегистрирован: 22.05.2009 Сообщения: 22
|
Добавлено: Чт Авг 12, 2010 9:49 am Заголовок сообщения: Как нарисовать регион вокруг группы точек? |
|
|
Доброе время суток и заранее спасибо за помощь!
Имеется карта с некими точками (например базовые станции подвижной сети), в другой таблице имеется соответствие какая точка принадлежит какому региону (кластеру). Нужно нарисовать карту с кластерами, т.е. группа точек принадлежищих одному кластеру находится внутри некоего произвольного региона. Есть ли в MapBasic эдакая функция, которая рисует регион вокруг обозначенных точек? |
|
Вернуться к началу |
|
|
b0br0ff
Зарегистрирован: 22.05.2009 Сообщения: 22
|
Добавлено: Чт Авг 12, 2010 2:09 pm Заголовок сообщения: |
|
|
Кажися нашел ...
Create Object As ConvexHull |
|
Вернуться к началу |
|
|
dazerby
Зарегистрирован: 03.03.2013 Сообщения: 4
|
Добавлено: Пн Мар 11, 2013 2:41 pm Заголовок сообщения: |
|
|
b0br0ff писал(а): |
Кажися нашел ...
Create Object As ConvexHull |
А полный код не могли бы выложить?? |
|
Вернуться к началу |
|
|
sysrepos
Зарегистрирован: 22.10.2012 Сообщения: 39
|
Добавлено: Пн Мар 11, 2013 4:46 pm Заголовок сообщения: |
|
|
если без программирования, то аналогичная функция через меню:
Объекты - оконтурить объекты (перед этим естественно выбрать необходимые объекты), если регионов немного, то вручную, если очень много, тогда уже через мапбэйсик с циклом |
|
Вернуться к началу |
|
|
dazerby
Зарегистрирован: 03.03.2013 Сообщения: 4
|
Добавлено: Пт Мар 15, 2013 9:34 am Заголовок сообщения: |
|
|
Я конечно извиняюсь: но если туговато с MAPBasic.
Не могли бы выложить хоть примерный код с циклом, чтобы было откуда копать и ковырять. |
|
Вернуться к началу |
|
|
sysrepos
Зарегистрирован: 22.10.2012 Сообщения: 39
|
Добавлено: Пт Мар 22, 2013 12:14 am Заголовок сообщения: |
|
|
sub proc1
dim kol as integer 'количество значений
dim i as integer
dim obj1 as object
dim zn as alias 'значение в колонке
dim vk as alias 'имя колонки для select
dim znstr as string
vtt=tableinfo(1,TAB_INFO_NAME) 'таблица, в которой будет происходить группировка (первая таблица в карте)
if vubkol="" then vubkol="col1" end if 'если в настройках ничего не выбрано, то группируется по первой колонке
select * from vtt group by vubkol into q1 'первая выборка с группировкой
kol=tableinfo(q1,tab_info_nrows)
for i=1 to kol
fetch rec i from q1
zn=q1+"."+vubkol 'значение в колонке
znstr=zn 'значение в колонке str
vk=str$(vubkol) 'имя колонки для select
select * from vtt where str$(vk)=znstr into q2 'вторая выборка для ConvexHull
if tableinfo(q2,tab_info_nrows)>2 then 'если в выборке больше 2 объектов, тогда ConvexHull (если меньше, то ConvexHull не может выполниться)
'note tableinfo(q2,tab_info_nrows)
Create Object As ConvexHull From q2 Into variable obj1
insert into vtt (obj, vk) values (obj1,znstr )
end if
next
close table q1
close table q2
End Sub
этот код нужно вставлять в программу MapBasic (не в окно в MapBasic которое в самом MapInfo - там работать не будет)
тут можете скачать саму готовую программу:
http://files.mail.ru/6E3EBCCC293C45D8BC1877559994D44F |
|
Вернуться к началу |
|
|
superman7
Зарегистрирован: 15.01.2014 Сообщения: 1
|
Добавлено: Ср Янв 15, 2014 3:55 pm Заголовок сообщения: |
|
|
Не могли бы выложить хоть примерный код с циклом, чтобы было откуда копать и ковырять. |
|
Вернуться к началу |
|
|
Aliraza019
Зарегистрирован: 08.09.2014 Сообщения: 1
|
|
Вернуться к началу |
|
|
|