Методи геогашу багатокутника?


11

GeoHash - це відмінний метод для кодування широти та довготи точки в рядку. Це стисло, завдяки використанню цифр + букв, а точність можна настроїти, додаючи символи в кінці.

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

  • геогашуйте всі точки багатокутника, потім з'єднайте їх, а потім стисніть отриманий рядок, використовуючи класичні алгоритми стиснення тексту.
  • посилаються на всі геогаси, що входять до полігону. Це метод RecursivePrefixTree - див. Http://www.opensourceconnections.com/2014/04/11/indexing-polygons-in-lucene-with-accuracy/ .

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

Редагувати: див. Також обговорення (французькою мовою) на веб-сайті http://seenthis.net/messages/269838 .


Ласкаво просимо до GIS SE, ви можете використовувати будь-яку бібліотеку пітона / гео?
художній твір21

Очевидно, що так. Але питання стосується більше понять та алгоритмів, ніж реалізацій.
Сильвейн Лесаж,

Відповіді:




1

З нещодавним випуском Google від відкритого коду локації виникло гарне запитання про Geohash. На жаль, я не бачив щось про полігони Geohash.

Під час пошуку різних рішень для подібних рішень Geohash перегляньте порівняння різних алгоритмів та рішень Google на веб-сторінці https://github.com/google/open-location-code/blob/master/docs/comppare.adoc

Це чітко для очок, але це може допомогти вам у вашому полігоні "квест" на полігоні.


1

Дуже простою реалізацією було б виконати BFS, наповнюючи полігон геогешами. Тоді ви можете рекурсивно розбити краї з більшою точністю.

введіть тут опис зображення

Ось приклад Приклад BFS


0

Функція PostGIS ST_GeoHash повертає GeoHash на основі типу вхідної геометрії. Звичайно, будь-яка геометрія, окрім точки, призведе до меншої точності.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.