Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Временные слои

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
СергейТ



Зарегистрирован: 17.06.2005
Сообщения: 44
Откуда: Новосибирск

СообщениеДобавлено: Чт 29 Мар 2007 17:52    Заголовок сообщения: Временные слои Ответить с цитатой

Здравствуйте,
Существуют ли в ИнГео временные слои для создания объектов? Для чего нужно: если требуется отобразить большое кол-во точечных объектов, но они не существуют в графике, а только как записи в таблице с координатами. Задача, на стороне клиента создавать точки с условными знаками на основе полученных координат. БД на удаленном сервере, пользователей много и нагружать сервер нельзя на данную операцию.
Может, есть решение для данной проблемы?
С уважением, Сергей.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение MSN Messenger
andreichernov



Зарегистрирован: 14.02.2005
Сообщения: 209
Откуда: Самара

СообщениеДобавлено: Пн 02 Апр 2007 08:17    Заголовок сообщения: Ответить с цитатой

Например так.
Пусть у вас есть таблица Point с полями (X,Y),
1) создать в любом служебном слое метод отображения
с нужным условным знаком и типом "в вершинах контура"
2) создать индексы по X и Y (для быстроты)
3) В отклике на сообщение после рисования карты
sub DbPaint_PaintComplete(aSurface)
а) создать пустой контур с одной точкой
set aContour = Application.CreateObject(incrContour,0)
aContour.Insert(0)
aContour.Item(0).InsertVertex 0,0,0,0
б) найти физические координаты прямоугольника, соотв экрану
(X1,Y1,X2,Y2) с помощью aSurface.sPointDeviceToWorld
в) запросить точки из таблицы
sеlect x,y from pоint whеrе X1<=X аnd X <= аnd Y1<=Y аnd Y <= Y2
г) для каждой строки результата заполнить значениями координат
точку контура
aContour.Item(0).SetVertex 0,X,Y,0
д) нарисовать контур УЗнаком
set IngeoPainter = ActiveDB.PainterFromID(ид метода отображения)
IngeoPainter.PaintContour aSurface, Contour, ''
end sub
Так делается, например, трекинг движущихся объектов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB