BruTile

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: github.com/BruTile/BruTile

BruTile — это библиотека на языке C# для работы с тайловыми картографическими сервисами. Она разработана как модуль для вычисления индексов тайлов, построения URL-запросов и получения данных тайл-серверов в виде потоков изображений без выполнения визуализации. Библиотека поддерживает различные схемы тайловой разметки и форматы серверов, включая популярные поставщики тайлов и стандартные протоколы, что делает её пригодной для интеграции в десктопные и серверные геоинформационные приложения.

История и эволюция BruTile связаны с ростом применения тайловой подачи картографических данных в GIS и картографических клиентах. Библиотека концентрируется на абстрагировании различий между провайдерами тайлов, предоставляя единый набор интерфейсов для описания уровней масштабов, проекций и форматов URL-шаблонов. Внутренняя архитектура ориентирована на расширяемость: добавление нового поставщика или схемы разбиения реализуется через реализацию соответствующих интерфейсов без изменения ядра.

  • Поддержка провайдеров: реализация адаптеров для различных тайловых сервисов и возможность добавления собственных поставщиков.
  • Вычисление тайлов: расчёт индексов тайлов (X, Y, Z) для заданных координат, масштабов и проекций.
  • Шаблоны URL: формирование URL-запросов по шаблонам с подстановкой параметров тайла и метаданных.
  • Работа с потоками: получение тайлов как потоков байтов/изображений для последующей обработки или кеширования в приложении.
  • Поддержка проекций: работа с географическими и проекциями Web Mercator для совместимости с большинством тайловых серверов.
  • Кеширование и оптимизация: интеграция со сторонними механизмами кеширования и менеджмент запросов для повышения производительности.
  • Расширяемая архитектура: интерфейсы для добавления новых схем разбиения, форматов тайлов и способов аутентификации.
  • Совместимость: ориентирована на использование в .NET-проектах и лёгкую интеграцию с картографическими рендерами и GIS-библиотеками.
  • Конфигурация уровней масштабов: описание уровней зума, размеров тайлов и разрешения для точного соответствия серверной разметке.
  • Обработка ошибок и устойчивость: механизмы обработки неудачных запросов и повторных попыток при сетевых сбоях.
Подробнее