Страница 1 из 1
					
				Рисование полигонов из файла
				Добавлено: 17 апр 2010, 00:41
				 Doc.FoUkS
				Люди добрые! Помогите) У меня стоит мапбасик 9.5. Нужно из файла (.txt) нарисовать на карте полигончики. В самом файле координаты x и y. Данные вроде как считываются и заносятся в массив, а уже от него начинаем плясать))) Проблема то в том, что при создании полигона создается только точка с какими-то левыми координатами и басику просто пофиг, будь то координаты из файла, либо координаты, которые указываешь в самом коде. Если последние 2 пары координат 0 и 0, то появляется просто черная линия. Можете подсказать в чем проблемка может заключаться 

 
			
					
				Re: Рисование полигонов из файла
				Добавлено: 17 апр 2010, 09:23
				 bim2010
				Есть несколько вариантов:
1.  
connectthedots_MLC
Создает полигон или полилинию, соединяющие выбранные точки. Добавляет получившийся объект в конец исходной таблицы. Игнорирует удаленные и не точечные объекты выборки. По желанию, удаляет исходные точки.
connectthedots_MLC.ini 'языковой' файл, который должен быть расположен в той же директории, что и MBX. Если файл не существует, connectthedots_MLC.mbx использует только англоязычный интерфейс. Другие языки могут быть добавлены в дальнейшем при условии соблюдения структуры INI файла.
2.  
MITAB
3.  
OGR
Еще советую разобраться с 
форматом обмена данными Mapinfo MIF.  Т.к. mif и есть 
текстовый формат MI.
А вообще - текст в студию. Ваш вариант вполне допустим. Необходимо уточнить из TXT  в TAB или MIF?
 
			
					
				Re: Рисование полигонов из файла
				Добавлено: 17 апр 2010, 20:45
				 Doc.FoUkS
				вообщем в TXT следующая запись (к примеру):
3179426.116988,6143454.999979
3179599.039028,6143453.499982
3179596.695116,6143398.499972
3179424.554329,6143402.99999
где первая цифорка - координата X, а через запятую - координата Y. Т.е нужно из текстовика объект в табличку внести, что он делает, но не ахти как адекватно....
сам код выглядит так:
Код: Выделить всё
Sub Renew
Dim vlist(60) As Point
Dim tot, i As Integer,
       myobj As Object,
	fileName as string,
	tName as string
      
 tot = 1 
set CoordSys Earth
 'OnError GoTo exit_gracefully'
FileName = FileOpenDlg("","","TXT","Открыть файл координат")
	Open File FileName For Input As #1
 Do While Not EOF(1)  
    Input #1,vlist(tot).x,vlist(tot).y 
       tot = tot + 1
loop
tName = TableInfo(1,TAB_INFO_NAME)
Create Region Into Variable myobj 0
for i=1 to tot-1
Alter Object myobj Node Add (vlist(i).x, vlist(i).y)
print tName+"    "+vlist(i).x+"    "+vlist(i).y
Next
Insert Into Create_Object (obj)
Values (myobj)
Print "Объект успешно создан"
End Sub
 
			
					
				Re: Рисование полигонов из файла
				Добавлено: 18 апр 2010, 00:02
				 Boris
				set CoordSys Earth
и что это по вашему за система координат такая? что в руководстве и хелпе написано?
 
			
					
				Re: Рисование полигонов из файла
				Добавлено: 18 апр 2010, 06:53
				 bim2010
				MapBasic Руководстово пользователя
Страница 166
Глава 9:  Графические объекты
Следующий пример иллюстрирует эту процедуру:
Include "mapbasic.def"
Type Point
x As Float
y As Float
End Type
Dim objcoord(5) As Point
Dim numnodes, i As Integer, myobj As Object
numnodes = 3
set CoordSys Earth
objcoord(1).x = -89.213 objcoord(1).y = 32.017
objcoord(2).x = -89.204 objcoord(2).y = 32.112
objcoord(3).x = -89.187 objcoord(3).y = 32.096
Create Pline Into Variable myobj 0
For i = 1 to numnodes
Alter Object myobj Node Add (objcoord(i).x,objcoord(i).y)
Next
Insert Into cables (obj) Values (myobj)
Посмотрите здесь 
_1_      _2_   _3_
{
http://read.pudn.com/downloads81/source ... .bas__.htm}