Проблема производительности во Flex с использованием HeatMap - PullRequest
0 голосов
/ 21 сентября 2010

Я использую heatMap во Flex 3.5, но у меня огромная проблема с производительностью, потому что я пытаюсь установить между 3.000 и 10.000 маркерами на карте.В тот момент, когда карта начинает процесс рендеринга, сценарий сборки браузера.

Я использую реализацию GoogleMpas, созданную "flex epiphanies", которую я использовал http://sunild.com/proto/Earthquakes2/Earthquakes.html в качестве базы.

По сути, моя реализация вызывает сервис, который вызывает генератор ZipCode latLon на стороне сервера для вычисления latLon каждого реестра, который я должен показать, который возвращает большой массив (от 3000 до 10.000 элементов), каждый элемент имеет широтуи долгота, потому что мне нужно показать каждую отметку.

Проблема, с которой я сталкиваюсь, - это ОБРАЩЕНИЕ к элементам на карте, потому что служба, которую я вызываю, действительно быстрая.

IНе знаю, является ли это наилучшим способом реализации HeatMap, но я уверен, что он не очень эффективен, когда число маркеров не превышает 3.000.

Буду признателен за вашу поддержку, если кто-нибудь может дать мне предложения илидругая реализация HeatMap.3

1 Ответ

0 голосов
/ 21 декабря 2010

Что вы имеете в виду, когда говорите, что должны показывать каждую отметку? Эту вещь, которую вы пытаетесь создать, вероятно, помогут два вида оптимизации:

1) Соберите все, что вы можете на стороне сервера. Нет необходимости оставлять так много обработки для прошивки, когда сервер, вероятно, может сделать это быстрее. Если вам не нужно буквально показывать каждую точку - и вам нужна только сама тепловая карта - посмотрите, можете ли вы изменить ее так, чтобы она брала массив уже агрегированных значений маркеров, возможно, «кусков» в диапазоне нескольких латов / длинных квадратов. Если вы не показываете какую-то конкретную информацию о каждой точке, я не думаю, что вам на самом деле придется «показывать каждую отметку». Если вы извлекаете данные прямо из какого-либо сервиса, которым не можете управлять, возможно, вы могли бы создать простой средний уровень, который бы просто агрегировал данные перед их передачей во флэш-память.

2) Оптимизация функциональности тепловой карты. Если вы знаете достаточно ActionScript, я бы порекомендовал перенести код тепловой карты на чистый AS3 - и, возможно, весь проект, если он не слишком сложный; для 10000 очков вам понадобится много ресурсов, которые поглотит инфраструктура Flex. Если вы сумасшедший алгоритмист, вы, вероятно, увидите некоторые другие способы оптимизации, но если бы не я, я бы просто прочитал много постов Гранта Скиннера (http://gskinner.com/blog), потому что оптимизация ActionScript - это все, о чем этот парень когда-либо говорил. 1006 *

Я делаю нечто подобное, и мне придется иметь дело с точками в диапазоне от тысяч до сотен тысяч, и я буду использовать этот подход.

...