Создание полигона (Create Region)
Добавлено: 08 апр 2011, 10:32
				
				Здравствуйте!
Я новичок в MapBasic, поэтому прошу сильно не пинать...
Пишу небольшую программу, которая будет добавлять контур земельного участка по координатам из кадастра...
До этого делалось все вручную, при помощи открытия текстового файла с координатами, хотелось бы автоматизировать, так как пользователи все норовят накосячить...
Нашел кучу примеров, вроде сделал все как написано, а желаемого не достиг
Алгоритм такой есть координаты в массиве, которые берутся из оконной формы. Далее просто создается новая таблица и записывается в нее 1 полигон (Region)
Проблема состоит в следующем: при открытии созданной таблицы в активной карте полигон не отображается...
При просмотре ее в виде списка есть новая запись в таблице... Как ее отобразить на карте?
P.S. В оригинале вершины полигона добавляются в цикле, здесь я нарочно упростил алгоритм, набросав построение квадрата
			Я новичок в MapBasic, поэтому прошу сильно не пинать...
Пишу небольшую программу, которая будет добавлять контур земельного участка по координатам из кадастра...
До этого делалось все вручную, при помощи открытия текстового файла с координатами, хотелось бы автоматизировать, так как пользователи все норовят накосячить...

Нашел кучу примеров, вроде сделал все как написано, а желаемого не достиг

Алгоритм такой есть координаты в массиве, которые берутся из оконной формы. Далее просто создается новая таблица и записывается в нее 1 полигон (Region)
Проблема состоит в следующем: при открытии созданной таблицы в активной карте полигон не отображается...
При просмотре ее в виде списка есть новая запись в таблице... Как ее отобразить на карте?
P.S. В оригинале вершины полигона добавляются в цикле, здесь я нарочно упростил алгоритм, набросав построение квадрата
Код: Выделить всё
Sub build_sub
	'построить контур по введенным координатам
	Dim i As Integer
	Dim obj_region As Object
	Dim new_table_path,new_table_name As String
	new_table_name = "new_table"
	new_table_path = FileSaveAsDlg("",new_table_name,"TAB","Сохранить координаты нового участка как...")
	'если пользователь не нажал "отмена"
	If new_table_path Then
		'создать таблицу с контуром (полигон)
		Create Table new_table_name
		(	y_coord Float,
			x_coord Float)
			File new_table_path
			Type NATIVE
			Version 300
		'произвести настройки таблицы
		Create Map For new_table_name CoordSys Nonearth Units "m" Bounds (0,0)(25000,25000)
		
		'создать пустой объект типа "region"
		Create Region Into Variable obj_region 0
		Alter Object obj_region Node Add (12000,14000)
		Alter Object obj_region Node Add (13000,14000)
		Alter Object obj_region Node Add (13000,15000)
		Alter Object obj_region Node Add (12000,15000)
		
		'поместить область с вершинами в таблицу
		Insert Into new_table_name (Object) Values (obj_region)
	End If
End Sub