2016-08-17 3 views
1

У меня есть место между статическими объектами 2M и 10M, которые я бы хотел наложить на Google Maps. Я уже ранее пробовал HeatmapLayer на гораздо меньших наборах. Из-за объема сдвига я немного обеспокоен, и я должен объединить объекты вместе, чтобы избежать проблем с производительностью. Целевая платформа - Chrome на стандартном рабочем столе.Отображение миллионов объектов в JavaScript

Каков наилучший способ для разделения разделов и слияния объектов в непосредственной близости? Должен ли я попробовать какой-то тип свободного квадратного дерева, чтобы объединить объекты вместе, а затем отобразить каждый узел с соответствующим весом, используя HeatmapLayer? Или я должен попытаться динамически построить некоторый тип треугольной сетки, где вершины могут быть динамически объединены, а треугольники набирают вес, когда к ним добавляются все больше объектов, а затем отображаются треугольники поверх Google Maps? HeatmapLayer довольно быстр (похоже, он реализован в GL-шейдерах), но я сомневаюсь, что Polygon есть.

Я пробовал искать с открытым исходным кодом free quad tree JavaScript-реализации и другие разделы быстрого развертывания JavaScript, но ничего не нашли. Является ли мой лучший выбор для переноса некоторых реализаций на C++? Любые ответы/комментарии от кого-то, кто построил что-то подобное, были бы полезны!

+2

Кажется, что вы хотите предварительно сгруппировать свои статические объекты в систематические зоны. Затем, когда у вас есть отображаемая часть карты, вы можете рассчитать, какие зоны пересекаются с вашим окном просмотра, а затем обрабатывать только подмножество объектов в перекрывающихся зонах. Я могу себе представить, что часто бывают случаи, у вас будет только одна зона, которая будет перекрываться с окном просмотра. Это может быть даже многоуровневым, так что зона содержит подзоны, и вы повторяете процесс, чтобы сузить его до только соответствующих подзонов. – jfriend00

+2

Вы видели статью [«Слишком много маркеров»] (https://developers.google.com/maps/articles/toomanymarkers) в документации Google API Javascript API v3? Для большого количества маркеров вы, вероятно, захотите использовать решение для рендеринга на основе плитки (FusionTablesLayer, KmlLayer или пользовательский тип карты с изображениями, которые вы визуализируете на своем сервере). – geocodezip

ответ

0

Я установил предварительную обработку своих данных в бэкэнд с помощью space partitioning implementation. Я рекомендую его для всех, у кого есть такая роскошь.

Смежные вопросы