Библиотека S2 интересна тем, что все данные в ней представлены не как плоские проекции, а как объекты в трехмерном пространстве. Такая библиотека подходит для создания географических баз данных любого масштаба в одной системе координат с низким уровнем искажения информации и возможностью сверять построенные модели с настоящей формой земного шара.
Среди примечательных функциональных возможностей библиотеки:
- Гибкая поддержка пространственной индексации, включающая возможность аппроксимировать произвольные области как коллекции отдельных ячеек S2;
- Быстрая индексация коллекций точек, ломаных линий и полигонов в оперативной памяти;
- Надежные конструктивные операции (пересечение, объединение и упрощение) и логические предикаты;
- Оперативные функции запросов для нахождения объектов, измерения расстояний и т.д.;
- Множественные тесты на коллекциях геоданных Google.
Изначально библиотека была написана на C++, однако некоторые модули портированы на Go, Java и Python. С подробным описанием полезных функций и инструкциями по установке можно ознакомиться в документации на официальном сайте S2. Сама библиотека выложена на GitHub.