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

Хакеры всех стран - ОБЪЕДИНЯЙТЕСЬ
-
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
Re: Рисование полигонов из файла
Есть несколько вариантов:
1. connectthedots_MLC
Создает полигон или полилинию, соединяющие выбранные точки. Добавляет получившийся объект в конец исходной таблицы. Игнорирует удаленные и не точечные объекты выборки. По желанию, удаляет исходные точки.
connectthedots_MLC.ini 'языковой' файл, который должен быть расположен в той же директории, что и MBX. Если файл не существует, connectthedots_MLC.mbx использует только англоязычный интерфейс. Другие языки могут быть добавлены в дальнейшем при условии соблюдения структуры INI файла.
2. MITAB
3. OGR
Еще советую разобраться с форматом обмена данными Mapinfo MIF. Т.к. mif и есть текстовый формат MI.
А вообще - текст в студию. Ваш вариант вполне допустим. Необходимо уточнить из TXT в TAB или MIF?
1. connectthedots_MLC
Создает полигон или полилинию, соединяющие выбранные точки. Добавляет получившийся объект в конец исходной таблицы. Игнорирует удаленные и не точечные объекты выборки. По желанию, удаляет исходные точки.
connectthedots_MLC.ini 'языковой' файл, который должен быть расположен в той же директории, что и MBX. Если файл не существует, connectthedots_MLC.mbx использует только англоязычный интерфейс. Другие языки могут быть добавлены в дальнейшем при условии соблюдения структуры INI файла.
2. MITAB
3. OGR
Еще советую разобраться с форматом обмена данными Mapinfo MIF. Т.к. mif и есть текстовый формат MI.
А вообще - текст в студию. Ваш вариант вполне допустим. Необходимо уточнить из TXT в TAB или MIF?
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 17 апр 2010, 00:35
- Репутация: 0
- Откуда: Moscow Fucking City
Re: Рисование полигонов из файла
вообщем в TXT следующая запись (к примеру):
3179426.116988,6143454.999979
3179599.039028,6143453.499982
3179596.695116,6143398.499972
3179424.554329,6143402.99999
где первая цифорка - координата X, а через запятую - координата Y. Т.е нужно из текстовика объект в табличку внести, что он делает, но не ахти как адекватно....
сам код выглядит так:
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
Хакеры всех стран - ОБЪЕДИНЯЙТЕСЬ
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Рисование полигонов из файла
и что это по вашему за система координат такая? что в руководстве и хелпе написано?set CoordSys Earth
-
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
Re: Рисование полигонов из файла
MapBasic Руководстово пользователя
Страница 166
Посмотрите здесь _1_ _2_ _3_
{http://read.pudn.com/downloads81/source ... .bas__.htm}
Страница 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}
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя