Я работаю над проектом, в котором нам необходимо обобщить значительный объем данных в виде тепловой карты.Эти данные будут храниться в базе данных как можно дольше.В какой-то момент нам нужно будет сохранить сводку в матрице (возможно?), Прежде чем мы сможем нарисовать блоки для тепловой карты на экране.Мы создаем приложение формы Windows с C #.
Давайте предположим, что тепловая карта объединяет файл журнала для онлайн-картографической программы, такой как Google Maps.Он назначит цвет конкретному адресу или региону в зависимости от того, сколько раз был сделан запрос к этому региону / адресу.Он может суммировать данные на разных уровнях детализации.То есть каждый блок на тепловой карте может суммировать данные для определенного адреса (макс. Детализация, следовательно, миллиарды / миллионы блоков) или он может суммировать запросы к улице, городу или стране (минимальная детализация - несколько блоков, поскольку оникаждый представляет страну).Представьте, что миллионы запросов были сделаны для адресов.Мы рассмотрели обобщение этого с помощью базы данных.Проблема в том, что нам нужно нарисовать на экране столько блоков (до миллиардов, но обычно гораздо меньше).Давайте предположим, что эти данные сведены в таблицу базы данных, в которой хранится количество попаданий в более крупные регионы.Можем ли мы нарисовать блоки в окне, не создавая объект для каждого региона или даже не вводя всю информацию из таблицы БД?Это моя главная задача, потому что если бы мы построили матрицу, для требовательного запроса это могло бы составить около 10 ГБ.
Мне интересно знать, сколько блоков мы можем нарисовать на экране и каков наилучший подходк этому может быть (то есть direct3d, XNA).Сверху вы можете видеть, что диапазон будет существенно различаться, и мы ожидаем, что потенциал будет составлять миллиарды квадратов.У нас будет вертикальная полоса прокрутки для быстрой прокрутки вниз, чтобы увидеть другие блоки.
В общем, мне интересно, как мы могли бы сделать это с C #?Создание матрицы для требовательного запроса может потребовать около 10 гигабайт.Есть ли способ рисования на экране, который не потребует значительного объема памяти (т.е. создание объекта для каждого блока).Если бы мы могли преобразовать результаты запроса SQL непосредственно в визуализированные блоки на экране, это было бы идеально (то есть не создание объектов и т. Д. И т. Д.).Все, что нам нужно, это квадраты, и их единственным свойством является цвет, и нам может потребоваться сохранить число для каждого блока.
Примечание. Мы довольно уверены в том, как будем рисовать тепловую карту (как масштабирование, прокрутка и т. Д.).должен появиться пользователю).Чтобы уточнить, я больше обеспокоен тем, как мы будем реализовывать нашу идею.Есть ли библиотека или какой-то метод, который позволяет нам рисовать столько объектов, не создавая миллиард объектов и не используя гигабайты данных.Каждый блок представляет собой группу пикселей (20х20), которые имеют один и тот же цвет.Я не верю, что для этого нужно построить 1 миллиард объектов.
Спасибо!