В этом кратком руководстве объясняется, как создать шейп-файл на C# без установки какого-либо стороннего инструмента. Вы можете создать векторный слой с помощью драйвера Shapefile, однако есть ряд других опций, доступных для создания различных типов векторных слоев. Вы можете создать файл SHP на C#, добавив атрибуты, геометрические точки и объекты в векторный слой, сохраненный как файл SHP.
Шаги по созданию нового шейп-файла в C#
- Настройте среду разработки, чтобы добавить Aspose.GIS for .NET из диспетчера пакетов Nuget.
- Создайте векторный слой, используя объект VectorLayer class, указав имя файла SHP и соответствующий драйвер.
- Установите различные атрибуты для коллекции атрибутов во вновь созданном векторном слое.
- Создайте feature с помощью функции ConstructFeature в объекте VectorLayer.
- Создайте объект класса Point и задайте свойство Geometry нового объекта.
- Добавьте эту функцию в векторный слой
Эти шаги исследуют процесс как создать шейп-файл в C#, предоставляя детали конфигурации, необходимые классы, пространства имен и методы, необходимые для разработки приложения. Здесь представлен пошаговый подход к разработке приложения для создания шейп-файла на C#, где сначала создается векторный слой типа шейп-файла, а затем к нему добавляются различные атрибуты. Точно так же для вновь созданной векторной формы строится функция, а затем задаются ее геометрическое положение и значения функций.
Код для создания шейп-файла на C#
using System; | |
using Aspose.Gis; | |
namespace AsposeProjects | |
{ | |
class Program | |
{ | |
static void Main(string[] args) // Main function to create a Shapefile in C# | |
{ | |
// Initialize a license | |
Aspose.Gis.License lic = new Aspose.Gis.License(); | |
lic.SetLicense(@"Aspose.Total.lic"); | |
// Create a vector layer | |
using (VectorLayer vecLayer = VectorLayer.Create("sample.shp", Drivers.Shapefile)) | |
{ | |
// Set attributes | |
vecLayer.Attributes.Add(new FeatureAttribute("ProductName", AttributeDataType.String)); | |
vecLayer.Attributes.Add(new FeatureAttribute("City", AttributeDataType.String)); | |
vecLayer.Attributes.Add(new FeatureAttribute("Price", AttributeDataType.Integer)); | |
vecLayer.Attributes.Add(new FeatureAttribute("Expiry", AttributeDataType.DateTime)); | |
// Set features | |
Feature firstFeature = vecLayer.ConstructFeature(); | |
firstFeature.Geometry = new Aspose.Gis.Geometries.Point(34.02, 71.52); | |
firstFeature.SetValue("ProductName", "Butter"); | |
firstFeature.SetValue("City", "Peshawar"); | |
firstFeature.SetValue("Price", 300); | |
firstFeature.SetValue("Expiry", new DateTime(2022, 12,15)); | |
// Add feature to the layer | |
vecLayer.Add(firstFeature); | |
} | |
System.Console.WriteLine("Done"); | |
} | |
} | |
} |
Этот код использует параметр Drivers.Shapefile для создания векторного слоя, однако вы можете использовать и другие параметры, такие как GeoJson, Kml, Gpx, Gml, TopoJson и т. д., для создания другого типа векторного слоя. Этот класс Vectorlayer содержит не только атрибуты и функции, но также содержит множество параметров преобразования, с помощью которых вы можете конвертировать слой в разные форматы.
В этом руководстве мы научились создавать шейп-файл на C#, однако, если вы заинтересованы в преобразовании SHP в формат GPX, обратитесь к статье как преобразовать SHP в GPX в С#.