Фильтрация и индексирование GIS векторных слоев в C#
С Aspose.GIS для .NET вы можете фильтровать слои по значениям атрибутов или пространственным границам. Вы также можете использовать индексы для ускорения фильтрации и пространственных запросов.
Индекс атрибутов
Фильтрация без индекса
Вот как отфильтровать слой по значениям атрибута:
Фильтрация с индексом
Приведенный выше код подходит, пока слой фильтруется только один раз. Но если слой, вероятно, будет запрашиваться несколько раз, мы можем извлечь выгоду из индексов атрибутов. Создание индекса атрибутов занимает некоторое время, но его можно многократно использовать для ускорения фильтрации.
Следующий пример использует файл индекса атрибутов для ускорения фильтрации слоя по значениям атрибута:
Сохранение отфильтрованных объектов
Отфильтрованные объекты можно сохранить в слои:
Отрисовка отфильтрованных объектов
Также можно отрисовывать отфильтрованные объекты. Следующий пример использует индекс атрибутов для быстрого выбора всех объектов с населением более 2000 и добавления их на карту:
Пространственный индекс
Пространственные индексы используются для ускорения пространственных запросов. Как и индексы атрибутов, пространственные индексы повторно используются после создания.
Поиск объектов ближайших к точке
Вот как использовать пространственный индекс для ускорения поиска объекта, ближайшего к некоторой точке:
Выбор объектов, пересекающихся с геометрией
Следующий пример использует пространственный индекс для ускорения выбора объектов, которые пересекаются с геометрией: