Геошаши широко используются в таких продуктах, как: Lucene, mongodb и т. Д., И стали одной из важнейших технологий современности.
Заменили ли геохеши старые добрые R-деревья или у R-деревьев есть какие-то преимущества по сравнению с геохашами?
Геошаши широко используются в таких продуктах, как: Lucene, mongodb и т. Д., И стали одной из важнейших технологий современности.
Заменили ли геохеши старые добрые R-деревья или у R-деревьев есть какие-то преимущества по сравнению с геохашами?
Ответы:
Geohash - это очень простой и эффективный способ индексации пространственных объектов, особенно точечных объектов. Линейные и многоугольные объекты немного сложнее проиндексировать, но это можно сделать. Geohash - это статическая иерархическая сетка фиксированного размера, наложенная поверх поверхности земли. Ячейки сетки одного и того же иерархического уровня не перекрываются. R-Tree - это динамическая сетка, расположение и размер ячейки которой меняются в зависимости от индексируемых объектов. Индексы R-Tree имеют ограничивающие рамки и ячейки, которые меняются каждый раз при вставке и обновлении данных. Geohash в основном используется для индексирования точечных объектов, и ячейки не меняются при каждой вставке и обновлении данных. Ячейки Geohash не адаптируются к таким функциям, как R-дерево.
Некоторые из преимуществ geohash (по сравнению с r-tree) могут быть:
Некоторые из недостатков geohash (по сравнению с r-tree) могут быть:
Те продукты (базы данных), которые вы упомянули, используют geohash, потому что geohash в основном используется для индексации точек, и существует множество приложений, которые нуждаются в такой возможности. Линии и полигоны используются не так часто (за исключением, конечно, приложений ГИС), так что зачем им это? Другая причина, конечно же, простота реализации. Geohash преобразует двумерную координату в одномерное значение. Это называется уменьшением размеров. Одномерное значение легко индексируется стандартным b-деревом, которое в основном используется в этих продуктах.
Я должен отметить, что существуют алгоритмы, аналогичные geohash, но большинство из них являются проприетарными и требуют лицензирования. Geohash находится в свободном доступе. Это может быть также причиной такого широкого использования в последние годы.
Вероятно, есть и другие преимущества и недостатки, но это первое, что приходит мне в голову. Я надеюсь, что мое объяснение немного поможет.