SASGIS

Веб-картография и навигация

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

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

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

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

Сообщение zed » 19 фев 2015, 17:34

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

Кстати, глянул сейчас на отрисовку границ тайлов - у нас там используется всего одна битмапка и на ней по-очереди рисуются границы, хотя по-моему можно же было сделать пулл битмапок и рисовать асинхронно? И скорее всего такая же логика заложена у всех векторных слоях?
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

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

Сообщение vdemidov » 19 фев 2015, 17:41

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

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

Вот когда будет реализована "0002616: Создать интерфейс рендеринга текста в IBitmap32Static" тогда и синхронизация с отдельной битмапкой уйдет.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.

За это сообщение автора vdemidov поблагодарил:
zed (19 фев 2015, 17:45)
Рейтинг: 5.26%
 
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

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

Сообщение Alex54 » 25 фев 2015, 10:44

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

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

Сообщение vdemidov » 25 фев 2015, 11:22

Alex54 писал(а):День добрый, подскажите пожалуйста, для чего используется Embedded Web Browser (формы InvisibleBrowser и InternalBrowser) ? Вся загрузка тайлов осуществляется при помощи классов в каталоге Network, если верно понимаю

InternalBrowser используется для отображения описаний меток, объектов, информации о картах и тд.
InvisibleBrowser в жалком зародыше антибана, который призван сделать вид что мы браузер.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

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

Сообщение Alex54 » 25 фев 2015, 11:51

Спасибо Вам !
Все-таки хочу победить рисование, делаю слой, взяв за основу класс TBitmapLayerProviderByTrackPath. Подскажите, есть ли пример отображения трека (скрин программы, чтобы понять, что делаю, по коду вижу, что даже цвет меняется от скорости объекта), как это выглядит на карте ? По коду пока вопросов нет, разбираюсь, концепцию Вы мне объяснили в одном из предыдущих постов
Alex54
Новичок
 
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

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

Сообщение vdemidov » 25 фев 2015, 12:30

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

Ну, готового скрина нет, а что бы сделать нужен gps или эмулятор. Выглядит просто как разноцветная линия на карте.

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

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

Сообщение Alex54 » 28 фев 2015, 01:12

vdemidov писал(а):А что конкретно сделать пытаетесь. Может подскажу что-то полезное.

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

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

Сообщение Alex54 » 28 фев 2015, 01:52

Подскажите пожалуйста, как сделать возможным обработку щелчка мышью на карте по треку (получается, уже на собственном слое, onMouseDown в главной форме) с отображением банера, как у Вас в линейке это сделано ? Дайте направление и в каком модуле у Вас этот банер реализован ? Премного благодарен за внимание !
Alex54
Новичок
 
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

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

Сообщение vdemidov » 28 фев 2015, 11:54

Не понял о каком банере идет речь, но обработку кликов по треку нужно делать по аналогии с кликом по векторным объектам. Тоесть делать аналог IFindVectorItems, который будет возвращать не набор векторных объектов, а информацию о ближайшей точке трека. И вызывать вручную в mapMouseMove главной формы.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 136 раз.

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

Сообщение Alex54 » 28 фев 2015, 14:26

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

Спасибо, под банером я имел ввиду текстовую надпись с обозначением длины при добавлении узла линейки. В каком модуле это сделано и как туда вывести свой текст ?
Alex54
Новичок
 
Сообщения: 28
Зарегистрирован: 18 фев 2015, 12:14
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Пред.След.

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4