Что такое хорошая база данных / подход для хранения и запроса данных геометрических путей

Я работаю над проектом, который отслеживает капли (людей). Мы хотим отследить их положение xy, превратить это в некоторое представление их пройденного пути и выполнить запросы, которые возвращают такие вещи, как "какие пути находятся вблизи точки (a,b)" или "какие пути начинаются с (0, b)" или "какие пути входят в окружность с центром в (a, b) с радиусом r" и т. д.

Я гуглил и видел реализации ГИС, такие как PostGIS и SpatiaLite. Я ищу другие "namedrops", на которые я могу посмотреть, или личный опыт с конкретным решением, которое хорошо сработало для вас.

Редактировать: может быть уместно упомянуть, что я пишу код с использованием openFrameworks, библиотеки на основе C++, предназначенной для кодирования художественных приложений. Я работаю с установкой, которая использует настройки проектора и камеры для проецирования интерактивных приложений на рабочую площадь. Моя рабочая среда - это code::blocks на windows. ответы от людей, которые работали с openframeworks, это плюс!

2 ответа

Решение

Учитывая требования проекта, было решено, что Spatialite является хорошим выбором, особенно потому, что это простое расширение Sqlite, которое уже поддерживается openframeworks через аддоны, разработанные сообществом. Другой альтернативой будет postgis, если мы хотим использовать более сложную систему управления базами данных, чем sqlite.

Spatialite поддерживает множество операций ГИС. В частности, наш проект мог бы эффективно использовать запросы "пересечения" и "пересечения".

На уровне библиотеки C вы можете просто использовать Geos, библиотеку для выполнения геометрических операций того типа, который вы упомянули. Postgis идеально подходит, если вы хотите хранить геоданные, но, возможно, вам это не подходит. Geos - это порт JTS, который является Java.

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