Страница 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}