Как создать слой карты Leaflet из более чем 30 000 точек?

Я создаю приложение карты, для которого я должен показать объем нашей пользовательской базы. У меня более 30 000 координат, и мне интересно, как лучше всего отобразить их, не слишком влияя на производительность.

Я решил, что создание собственной плитки/слоя будет лучшим способом сделать это, но не нашел, как это сделать. Я посмотрел на Mapbox, но не нашел то, что ищу.

В настоящее время приложение использует Leaflet и директиву Angular-leaflet.

Я с нетерпением жду ваших предложений.

Изменить: я пытаюсь сделать что-то подобное визуально http://tombatossals.github.io/angular-leaflet-directive/examples/0000-viewer.html#/paths/3000-items-example


person JohnT    schedule 29.10.2015    source источник


Ответы (1)


Говоря о «плотности», вам может быть интересно показать тепловую карту (см. доступные плагины для тепловых карт). ). Heatmap.js может соответствовать вашим потребностям, так как заявлено, что он может управлять более чем 40 000 точек данных. .

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

При этом вам все равно нужно будет загрузить эти 30 000 точек, прежде чем вы сможете их отобразить (либо с помощью кластеризации, либо в виде тепловой карты), поэтому убедитесь, что ваши данные скудны! Другим решением было бы создание ваших плиток тепловой карты на стороне сервера.

person ghybs    schedule 29.10.2015
comment
Я играл с тепловыми картами, но это не тот результат, который мне нужен. Я намерен генерировать плитки на стороне сервера, но я просто не знаю, как это сделать. Я отредактировал свой вопрос с примером того, чего я пытаюсь достичь. - person JohnT; 29.10.2015
comment
Спасибо вам за ссылки ! Я нашел MaskCanvas, который, как мне кажется, подойдет мне. Поэтому я принял ваш ответ - person JohnT; 29.10.2015