Страница 1 из 1

MapBasic: разные центры у одинаковых объектов

Добавлено: 17 июн 2015, 16:05
sysrepos
Добрый день! Возникла такая проблема. При построении объекта (квадрата) 1 способом, центр объекта определяется правильно, а при построении 2 способом - центр объекта находится в левом нижнем углу объекта.
Вопрос: что нужно сделать, что при построении объекта вторым способом центр объекта определялся правильно

(из за того, что центройд оказывается не там, где должен, автоподписи так же всегда появляются в углу таких объектов, независимо от настроек)
1 способ:

Код: Выделить всё

	dim obj1 as object
	dim x1,y1,x2,y2,x3,y3,x4,y4 as float

	x1=0	y1=0	
	x2=0	y2=10	
	x3=10	y3=10	
	x4=10	y4=0	

create region into variable obj1
			1
			4
			(x1,y1) 
			(x2,y2)
			(x3,y3)
			(x4,y4)
			Pen style_pen
			Brush style_brush
	insert into setka (obj) Values (obj1)
2 способ:

Код: Выделить всё

	dim obj1 as object
	dim x1,y1,x2,y2,x3,y3,x4,y4 as float

	x1=0	y1=0	
	x2=0	y2=10	
	x3=10	y3=10	
	x4=10	y4=0	

create region into variable obj1
	0
	Pen style_pen
	Brush style_brush
	
	
	alter object obj1
	node add  (x1, y1)
	
	alter object obj1
	node add  (x2, y2)
	
	alter object obj1
	node add  (x3, y3)

	alter object obj1
	node add  (x4, y4)
	
	insert into setka (obj) Values (obj1)
Изображение

Re: MapBasic: разные центры у одинаковых объектов

Добавлено: 17 июн 2015, 17:59
Игорь Белов

Код: Выделить всё

Alter Object obj1 Geography OBJ_GEO_CENTROID, CreatePoint(
    ( ObjectGeography(obj1, OBJ_GEO_MINX) + ObjectGeography(obj1, OBJ_GEO_MAXX) ) / 2,
    ( ObjectGeography(obj1, OBJ_GEO_MINY) + ObjectGeography(obj1, OBJ_GEO_MAXY) ) / 2
)

Re: MapBasic: разные центры у одинаковых объектов

Добавлено: 17 июн 2015, 21:12
thegeo
viewtopic.php?f=17&t=15428&p=108708#p108708
Реализуйте указанный подход в коде.

Re: MapBasic: разные центры у одинаковых объектов

Добавлено: 18 июн 2015, 05:56
Sibit
Видимо, когда вы добавляете в объект по точке, центоиды не пересчитываются.

Re: MapBasic: разные центры у одинаковых объектов

Добавлено: 18 июн 2015, 09:45
sysrepos
спасибо всем за советы.