Вопросы по исходному коду

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

zed
Гуру
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз
Поблагодарили: 568 раз

Re: Вопросы по исходному коду

Сообщение zed »

Рисование на битмапке, в принципе даже проще, чем Canvas и GDI. Главное помнить, что код вызывается из потока и юзать синхронизацию.

Кстати, глянул сейчас на отрисовку границ тайлов - у нас там используется всего одна битмапка и на ней по-очереди рисуются границы, хотя по-моему можно же было сделать пулл битмапок и рисовать асинхронно? И скорее всего такая же логика заложена у всех векторных слоях?
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

Re: Вопросы по исходному коду

Сообщение vdemidov »

zed писал(а):у нас там используется всего одна битмапка и на ней по-очереди рисуются границы, хотя по-моему можно же было сделать пулл битмапок и рисовать асинхронно?
Ну оно и так выполняется асинхронно в одельном потоке. А тот синхронизатор просто для случая паралельно запущенной склейки :) А битмапка одна, потому что в отличие от остальных рисований, при рисовании сетки нужно рендерить текст и тут уже используется системный канвас, вот что бы не плодить его в больших количествах и юзается одна битмапка. Пул там вообще не нужен, потому что это не узкое место.

Вот когда будет реализована "0002616: Создать интерфейс рендеринга текста в IBitmap32Static" тогда и синхронизация с отдельной битмапкой уйдет.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Alex54
Новичок
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раза

Re: Вопросы по исходному коду

Сообщение Alex54 »

День добрый, подскажите пожалуйста, для чего используется Embedded Web Browser (формы InvisibleBrowser и InternalBrowser) ? Вся загрузка тайлов осуществляется при помощи классов в каталоге Network, если верно понимаю
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

Re: Вопросы по исходному коду

Сообщение vdemidov »

Alex54 писал(а):День добрый, подскажите пожалуйста, для чего используется Embedded Web Browser (формы InvisibleBrowser и InternalBrowser) ? Вся загрузка тайлов осуществляется при помощи классов в каталоге Network, если верно понимаю
InternalBrowser используется для отображения описаний меток, объектов, информации о картах и тд.
InvisibleBrowser в жалком зародыше антибана, который призван сделать вид что мы браузер.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Alex54
Новичок
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раза

Re: Вопросы по исходному коду

Сообщение Alex54 »

Спасибо Вам !
Все-таки хочу победить рисование, делаю слой, взяв за основу класс TBitmapLayerProviderByTrackPath. Подскажите, есть ли пример отображения трека (скрин программы, чтобы понять, что делаю, по коду вижу, что даже цвет меняется от скорости объекта), как это выглядит на карте ? По коду пока вопросов нет, разбираюсь, концепцию Вы мне объяснили в одном из предыдущих постов
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

Re: Вопросы по исходному коду

Сообщение vdemidov »

Alex54 писал(а): Подскажите, есть ли пример отображения трека (скрин программы, чтобы понять, что делаю, по коду вижу, что даже цвет меняется от скорости объекта), как это выглядит на карте ?
Ну, готового скрина нет, а что бы сделать нужен gps или эмулятор. Выглядит просто как разноцветная линия на карте.

А что конкретно сделать пытаетесь. Может подскажу что-то полезное.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Alex54
Новичок
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раза

Re: Вопросы по исходному коду

Сообщение Alex54 »

vdemidov писал(а):А что конкретно сделать пытаетесь. Может подскажу что-то полезное.
В основном, пока пытаюсь разобраться, понять иерархию классов и какие классы (группы классов) какие функции выполняют. Собственно то, о чем кто-то выше интересовался
Alex54
Новичок
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раза

Re: Вопросы по исходному коду

Сообщение Alex54 »

Подскажите пожалуйста, как сделать возможным обработку щелчка мышью на карте по треку (получается, уже на собственном слое, onMouseDown в главной форме) с отображением банера, как у Вас в линейке это сделано ? Дайте направление и в каком модуле у Вас этот банер реализован ? Премного благодарен за внимание !
Аватара пользователя
vdemidov
Гуру
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз
Поблагодарили: 157 раз

Re: Вопросы по исходному коду

Сообщение vdemidov »

Не понял о каком банере идет речь, но обработку кликов по треку нужно делать по аналогии с кликом по векторным объектам. Тоесть делать аналог IFindVectorItems, который будет возвращать не набор векторных объектов, а информацию о ближайшей точке трека. И вызывать вручную в mapMouseMove главной формы.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Alex54
Новичок
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раза

Re: Вопросы по исходному коду

Сообщение Alex54 »

vdemidov писал(а):Не понял о каком банере идет речь, но обработку кликов по треку нужно делать по аналогии с кликом по векторным объектам. Тоесть делать аналог IFindVectorItems, который будет возвращать не набор векторных объектов, а информацию о ближайшей точке трека. И вызывать вручную в mapMouseMove главной формы.
Спасибо, под банером я имел ввиду текстовую надпись с обозначением длины при добавлении узла линейки. В каком модуле это сделано и как туда вывести свой текст ?
Ответить

Вернуться в «Раздел для разработчиков программы SAS.Планета»