Потоки и удаленное хранилище
Работа с многофайловыми форматами
Некоторые форматы ГИС данных разделяют контент на несколько файлов. Например, shapefile должен иметь как минимум три файла: *.shp, *.shx и *.dbf. Эти форматы требуют хранения всех файлов в определенной структуре каталогов с предопределенным шаблоном для имен файлов.
В то же время файлы могут храниться на удаленном сервере или в другом месте, доступном только через потоки. Потоки не содержат информации об именах файлов и структуре каталогов, что делает невозможным для драйверов форматов файлов определение того, как обрабатывать данные. Aspose.GIS решает эту проблему, предоставляя механизм абстрактных путей.
Абстрактный путь представляет собой путь к файлу (или каталогу) в каком-либо файлоподобном хранилище. Хранилище может быть любым, что имеет концепцию файла и каталога, от архива до FTP-сервера. Он определяет, как выполнять типичные операции с файлами, такие как открытие файла или перечисление каталога.
Вы можете указать, как выполнять операции с файлами для вашего хранилища, реализовав класс, наследующий AbstractPath и предоставив реализации для его абстрактных методов.
Пример: Azure Blob Storage
Репозиторий примеров Aspose.GIS содержит пример полностью функциональной реализации пользовательского абстрактного пути для Azure Blob Storage. Этот пример демонстрирует, как читать shapefile непосредственно из Azure Blob Storage. Вы можете найти его здесь: https://github.com/aspose-gis/Aspose.GIS-for-.NET/tree/master/Showcases/Azure_Blob_Integration_by_Aspose_Gis_for_NET.
Однофайловые форматы (GeoJSON, KML)
Форматы ГИС данных, такие как GeoJSON и KML, могут хранить все данные для слоя в одном файле. Если вы можете получить поток для файла, вы можете пропустить реализацию пользовательского абстрактного пути и использовать метод AbstractPath.FromStream() для создания экземпляра абстрактного пути для потока.