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

Координаты MapBasic

Добавлено: 03 авг 2010, 04:38
Роман01
Подскажите, пожалуйста, как программно (Mapbasic) вывести в Excel (или DBF ) координаты из базы в Mapinfo?
(Объекты)

Re: Координаты MapBasic

Добавлено: 04 авг 2010, 02:35
Boris
на вопрос в таком телеграфном стиле стоит получить ответ в таком же:
"надо программно обойти все объекты и для каждого из них получить координаты всех вершин. результат записать в файл. как найдете прямую запись в эти два формата из Mapbasic обязательно дайте знать."

Re: Координаты MapBasic

Добавлено: 04 авг 2010, 03:04
Роман01
Да, алгоритм я понимаю.
Но вычислить вершины объекта ...
Ведь вначале нужно определить, точно ли это объект...
А программно?
Подскажите, напишите подпрограммку. Пожалуйста!

Re: Координаты MapBasic

Добавлено: 04 авг 2010, 06:56
asgs
Dim i,j,k,n,ii,cnt As Integer
Dim A_Obj As Alias
Dim Cur_Obj As Object
Dim X,Y As Float

cnt = TableInfo(имя_таблицы,TAB_INFO_NROWS)
A_Obj = "имя_таблицы"+".obj"
for i=1 to cnt
fetch rec i from имя_таблицы
if A_Obj then
Cur_Obj = A_Obj 'Далее предполагаем, что в таблице одни регионы
k = ObjectInfo(Cur_Obj,OBJ_INFO_NPOLYGONS)
for j=1 to k
n = ObjectInfo(Cur_Obj,OBJ_INFO_NPOLYGONS+j)
for ii=1 to n
X = ObjectNodeX(Cur_Obj,j,ii)
Y = ObjectNodeY(Cur_Obj,j,ii)
'здесь скидываем координаты в файл
next
next
end if
next

Как-то так. Для всех типов объектов лениво писать, да и неудобно.
Про прямую запись в DBF - как-то давненько уже писал на C++ прямую читалку DBF, при желании можно переделать на запись и прикрутить к MapInfo через DLL, но это уже не уровень ТС, судя по вопросам ;)

Re: Координаты MapBasic

Добавлено: 05 авг 2010, 03:13
Роман01
Большое спасибо! Буду пробовать...