Карта с более чем 3k маркеров
Я пытаюсь нарисовать карту с множеством маркеров. Просто скажите более 3000 маркеров, и это занимает очень много времени для обработки и использует много памяти.
Но у меня есть та же карта в Google Earth, и она открывается очень быстро. Кто-нибудь знает способ ускорить процесс с помощью gmLib?
1 ответ
Посмотрите на структуры RTree.
R-деревья - это древовидные структуры данных, используемые для методов пространственного доступа, то есть для индексации многомерной информации, такой как географические координаты, прямоугольники или многоугольники.
Обычное реальное использование R-дерева может заключаться в хранении пространственных объектов, таких как местоположения ресторанов или полигоны, из которых сделаны типичные карты: улицы, здания, очертания озер, береговые линии и т. Д., А затем быстрый поиск ответов на запросы. такие как "Найти все музеи в пределах 2 км от моего текущего местоположения", "восстановить все участки дороги в пределах 2 км от моего местоположения"
Запросы, подобные ожидаемым, станут почти немедленными...:)
Я использую расширение RTree, доступное в SQLite3. Наша платформа с открытым исходным кодом связывает этот вид виртуальных таблиц с классами Delphi. Кстати, он работает с Delphi 6 до XE5.
Если вы боитесь использовать RTree, то упорядочение данных по порядку очень поможет при поиске, например, с помощью алгоритма двоичного поиска.