Перейти к содержимому

Фотография

MapBasic и все что с ним связаноМожет я не один такой?!


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 388

#261
swatch

swatch
  • Частый гость
  • 99 сообщений
:)
Обратите внимание на индексы, которые Вы указываете в массиве. При сохранении точек полилинии указываете индекс номера полилинии, а не индекс узла. В итоге в каждом элементе массива у Вас содержатся данные о последней точке полилинии.
Рекомендую каждую часть сложной(имеющей более одной части) полилинии рассматривать как отдельную полилинию.
Предлагаю, структуру для хранения данных об узлах объявить как:
Type Node
  pline_id As Integer ' ссылка на номер записи в таблице
  x As Float 'координата X узла полилинии
  y As Float 'координата Y узла полилинии
End Type
Для определения размерности массива можно воспользоваться выражением, в котором подсчитывается количество частей во всех полилиниях в таблице road. Результат нужно умножить на 2, т.к. из каждой полилинии мы берем 2 точки (начало и конец):
Dim size As Integer
Dim nodes() as Node 'массив для хранения данных о конечных узлах
Select Sum(ObjectInfo(Obj,OBJ_INFO_NPOLYGONS)) From road Where ObjectInfo(Obj, OBJ_INFO_TYPE) = OBJ_TYPE_PLINE Into _tmp
Fetch First from _tmp
Size = _tmp.Col1
Close Table _tmp
ReDim nodes (Size*2) 'задаем размерность массива
Производим считывание информации об узлах:
Dim part_num, parts_count, index As Integer
Fetch First From road
index = 1 ' устанавливаем индекс на первый элемент массива
While Not EOT(road) 'цикл по объектам таблицы road
  If ObjectInfo(road.obj,OBJ_INFO_TYPE) = OBJ_TYPE_PLINE Then ' проверка на то, что выбранный объект является полилинией
	parts_count = ObjectInfo(road.obj, OBJ_INFO_NPOLYGONS) ' определение количества частей
	For part_num = 1 to parts_count 'цикл по частям полилинии
	   'читаем информацию о начальном узле
	   nodes(index).pline_id = road.RowId
	   nodes(index).x = ObjectNodeX(road.obj, part_num, 1) 
	   nodes(index).y = ObjectNodeY(road.obj, part_num, 1)
	   index = index + 1 'меняем индекс текущего элемента массива
	   'читаем информацию о конечном узле
	   nodes(index).pline_id = road.RowId
	   nodes(index).x = ObjectNodeX(road.obj, part_num, ObectInfo(road.obj,OBJ_INFO_NPOLYGONS+part_num)) 
	   nodes(index).y = ObjectNodeY(road.obj, part_num, ObectInfo(road.obj,OBJ_INFO_NPOLYGONS+part_num))
	   index = index + 1 'меняем индекс текущего элемента массива
	Next
  End If
  Fetch Next From road
Wend
Как то так... :)

Сообщение отредактировал swatch: 03.03.2010, 16:14:38

  • 0

#262
Asphyxis

Asphyxis
  • Гость
  • 6 сообщений
ругается на while, wend, if :D
  • 0

#263
Asphyxis

Asphyxis
  • Гость
  • 6 сообщений
то исправил... но:

Select Sum(ObjectInfo(Obj,OBJ_INFO_NPOLYGONS)) From road Where ObjectInfo(Obj, OBJ_INFO_TYPE) = OBJ_TYPE_PLINE Into _tmp

несовпадение типов данных в выражении
  • 0

#264
swatch

swatch
  • Частый гость
  • 99 сообщений
2Asphyxis: ответил в личку
  • 0

#265
FoUkS

FoUkS
  • Случайный прохожий
  • 2 сообщений
Всем программерам привет! Есть небольшая проблемка с бейсиком. Нужно в код главной проги включить второстепенные файлы (формата .MB). Функция include чет тупит и бейсик матом кроет. Все файлы лежат в одной папке. Если кто знает, помогите))) в долгу не останусь)) тоже подсобим))) :(
  • 0

#266
swatch

swatch
  • Частый гость
  • 99 сообщений
Для какой цели нужно включать эти "второстепенные файлы"?
Обычно подход такой: Для объявления всяческих функций и глобальных переменных используется def-файл его нужно подключать через include.
Саму реализацию функций делают в фалике mb.
Затем его подключают в проект и уже линковщик делает всю "грязную" работу по данным из файлика проекта mbp.
Формат фала проекта mbp смотреть в разделе справки "Как создавать и собирать программы из нескольких модулей"
Коротко пример:
[LINK]
Application=textbox.mbx		 'название итогового файла программы после сборки
Module=textbox.mbo			  'список исходных модулей
Module=auto_lib.mbo
Файл mbo получится если в коде нет процедуры main
Удачи... :mad:
  • 0

#267
FoUkS

FoUkS
  • Случайный прохожий
  • 2 сообщений
Спс)) попробуем)) вот только [Link] странно иногда работает((( пишет что не знаю такую функцию [. Вообщем паааапробуем)) :)
  • 0

#268
swatch

swatch
  • Частый гость
  • 99 сообщений
2FoUkS: Еще приветствуется более подробное описание ситуации с перечислением действий, прикладыванием конфигурации, исходников и проч.
Здесь мы не оракулы 10-го уровня и на расстоянии геморрой лечить не можем. :)
  • 0

#269
almale

almale
  • Случайный прохожий
  • 1 сообщений
Уважаемые, пожалуйста, поделитесь мануалами по MapBasic на e-mail: mupapb@mail.ru.
Заранее, спасибо!
  • 0

#270
swatch

swatch
  • Частый гость
  • 99 сообщений
Маны тут
  • 0

#271
anton90ne

anton90ne
  • Случайный прохожий
  • 1 сообщений
Доброго времени суток!
Помогите пожплуйста, нужен мапбэйсик 9.0 или более ранний (нигде не могу найти-везде только 9.5 или 10 :) ), мыло: anton90ne@mail.ru
  • 0

#272
Паффка

Паффка
  • Случайный прохожий
  • 1 сообщений
Здравствуйте всем, если топик ещё жив и ктото его посещает. Я только начал работать в MI и понял что без написания доп утилит дела не здвинеться с места. Скиньте ссылки на MB и сам компилятор, и если можно книжки. Вот моё мыло Logozavr@yandex.ru.
А ещё лучше может что нить делал или естьтакие штуки.

1. В проге земдело есть "полезные графические помтороения".
Отрезок под углом к выделенному( или точка под углом к выделенному)
Прямоугольник по отрезку.
Параллельная линия.
Параллельный многоугольник.

Потом, есть ли такая утилита что бы на выделенном обьекте на слое подписывала его координаты и размеры. С каждой стороны размеры и координаты по углам. Может ли вообще такое быть. Или хотя бы что бы в отчёте такое формировалось.

И сам межевой план в формате word/excel.

Или хоть инфу как это делать.
  • 0

#273
mishok04

mishok04
  • Случайный прохожий
  • 2 сообщений
Уважаемый Jismo!
Если вы еще просматриваете данную тему пожалуста не погли бы вы выслать на yerzakov.m@gmail.com литературу по mapbasic (желательно версии 9 - но если не сложно то я бы был рад получить и 7 версию и 10)
Заранее благодарен
Спасибо
  • 0

#274
mishok04

mishok04
  • Случайный прохожий
  • 2 сообщений
Если кто нибудь из Уважаемых пользователей откликнется по поводу литературы по MapBasic
Буду очень рад любой присланной на ящик указанный выше)))
Всем спасибо
  • 0

#275
Jismo

Jismo
  • Свой человек
  • 975 сообщений
Привет всем ищущим!

Пользователь mishok04 я не смог отправить Вам письмо так как мэйл указанный вами не действителен, либо ошибка в самом ящике, укажите мэйл без ошибки либо дайте другой.
  • 0

#276
Jismo

Jismo
  • Свой человек
  • 975 сообщений
пордон дубль сообщения вышел случайно

Сообщение отредактировал Jismo: 08.07.2010, 20:05:12

  • 0

#277
Jismo

Jismo
  • Свой человек
  • 975 сообщений
есть кто?

Сообщение отредактировал Jismo: 08.07.2010, 23:46:10

  • 0

#278
swatch

swatch
  • Частый гость
  • 99 сообщений
"И тишина..., а в доль дороги мертвые с косами стоят..."
Из к/ф Неуловимые мстители.
Привет Jismo, что нового?

Сообщение отредактировал swatch: 20.07.2010, 15:26:36

  • 0

#279
swatch

swatch
  • Частый гость
  • 99 сообщений

...
Или хоть инфу как это делать.

Пиши в личку более подробно что нужно, будем помогать.
  • 0

#280
Jismo

Jismo
  • Свой человек
  • 975 сообщений

"И тишина..., а в доль дороги мертвые с косами стоят..."
Из к/ф Неуловимые мстители.
Привет Jismo, что нового?

Привет!
Сто лет сюда не заходил, а всеравно ничего и нет тут (((, мда...
Нового пока ничего, разьве что машину поменял )
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.