Переваги R-дерев у порівнянні з геохашами


18

Геошаші широко використовуються в таких продуктах, як: люцен, монгобб тощо, і стали однією з найважливіших технологій сучасності.

Чи замінили Geohashes добрі старі добрі R-дерева чи R-дерева мають якісь переваги порівняно з Geohashes?

Відповіді:


11

Geohash - це дуже простий і ефективний спосіб індексації просторових особливостей, особливо точкових. Особливості ліній та багатокутників індексувати важче, але це можна зробити. Geohash - це статична ієрархічна сітка з фіксованим розміром, накладена поверх земної поверхні. Осередки сітки одного ієрархічного рівня не перетинаються. R-Tree - це динамічна сітка, розміщення та розмір комірок змінюється залежно від особливостей, які вони індексують. Індекси R-Tree містять обмежувальні поля та комірки змінюються щоразу, коли ви вставляєте та оновлюєте дані. Geohash здебільшого використовується для індексації особливостей точок, і комірки не змінюються з кожним вставкою та оновленням даних. Клітини Geohash не відповідають характеристикам, як у R-дерева.

Деякі з переваг geohash (порівняно з r-tree) можуть бути:

  • проста реалізація
  • відсутність погіршення продуктивності із збільшенням кількості функцій
  • пошуки близькості (частково вірно)

Деякі з недоліків geohash (порівняно з r-tree) можуть бути:

  • довільна точність сітки
  • складніше індексувати (і запитувати) функції рядків та полігонів
  • розмір індексу може бути великим при деяких методах індексації ліній та багатокутників
  • за специфікаціями, його можна використовувати лише з системою координат довготи / широти, хоча той же метод може бути застосований і до інших систем координат

Ті продукти (бази даних), про які ви згадали, використовують geohash, оскільки geohash використовується в основному для індексації точок, і є багато додатків, які потребують такої функції. Лінії та багатокутники не так часто використовуються (за винятком, звичайно, ГІС-застосунків), то чому б це не турбувати. Інша причина, звичайно, простота в реалізації. Geohash перетворює двовимірну координату в одновимірне значення. Це називається зменшенням розмірів. Одновимірне значення легко індексувати стандартним b-деревом, яке в основному використовується в цих продуктах.

Я мушу зазначити, що існують аналогічні алгоритми для геохаш, але більшість з них є власником і вимагають ліцензування. Geohash знаходиться у відкритому доступі. Це також може бути причиною такого великого використання в останні роки.

Мабуть, є і деякі інші переваги та недоліки, але це перші, які мені спадають на думку. Я сподіваюся, що моє пояснення трохи допомагає.


я не розумів, чому геохаші дають довільну точність сітки. Можете пояснити, будь ласка, прикладом. Я буду вдячний вам за те саме.
Jannat Arora

1
Geohash перетворює координату довготи і широти в одновимірний рядок. Довжина цього рядка безпосередньо пов'язана з перетвореною точністю координати. Будь ласка, подивіться на це unterbahn.com/2009/11/… . Ви можете бачити, як довжина шнура геохаша прив’язана до точності. В основному, геохаш перетворює точку в полігонну область (одна сітка геогас). Розмір цього полігону залежить від довжини рядка геохаш і від широти, яку ви обчислюєте.
Маріо Мілер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.