Карта с более чем 3k маркеров

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

Но у меня есть та же карта в Google Earth, и она открывается очень быстро. Кто-нибудь знает способ ускорить процесс с помощью gmLib?

1 ответ

Посмотрите на структуры RTree.

R-деревья - это древовидные структуры данных, используемые для методов пространственного доступа, то есть для индексации многомерной информации, такой как географические координаты, прямоугольники или многоугольники.

Обычное реальное использование R-дерева может заключаться в хранении пространственных объектов, таких как местоположения ресторанов или полигоны, из которых сделаны типичные карты: улицы, здания, очертания озер, береговые линии и т. Д., А затем быстрый поиск ответов на запросы. такие как "Найти все музеи в пределах 2 км от моего текущего местоположения", "восстановить все участки дороги в пределах 2 км от моего местоположения"

Запросы, подобные ожидаемым, станут почти немедленными...:)

Я использую расширение RTree, доступное в SQLite3. Наша платформа с открытым исходным кодом связывает этот вид виртуальных таблиц с классами Delphi. Кстати, он работает с Delphi 6 до XE5.

Если вы боитесь использовать RTree, то упорядочение данных по порядку очень поможет при поиске, например, с помощью алгоритма двоичного поиска.

Другие вопросы по тегам