У меня есть база данных точек карты, и я хочу ограничить отображение показом не более ~ 50 точек за раз. Когда пользователь увеличивает масштаб изображения, может отображаться больше точек.Как фильтровать пространственные данные
В настоящее время я просто беру случайный образец результирующего набора. Это не очень удобно, так как могут быть пустые области, которые при увеличенном увеличении отображают точку.
Следующей мыслью я мог бы создать сетку 10x5 и перебрать результаты. Если место в сетке было пустым, я бы показал точку. Это устраняет предыдущую проблему, но также не дает пользователю понять, где сосредоточены области. Кроме того, это довольно медленно, если пользователь решает уменьшить масштаб для всего мира.
Прямо сейчас, я не использую какой-либо пространственный алгоритм для сортировки данных. Мой план состоит в том, чтобы заставить его работать в первую очередь, а затем быстро получить его. Читая немного в RTress, kd-деревьях и квадроциклах, я не мог найти ничего, что помогло бы мне выбрать «умное» подмножество образца. Кажется, должен быть какой-то широкий поиск по первой части, что бы решить эту проблему довольно легко.
Я рекомендую вам искать термин «алгоритмы кластеров», многие пространственные библиотеки реализуют его или есть какой-то пример для его реализации, например http://openlayers.org/dev/examples/strategy-cluster-threshold.html – phipex